+- Avoid distributed storage systems. This includes distributed block storage and file systems such as Ceph, GlusterFS, DRBD, and SAN-style solutions. CockroachDB is already a distributed, replicated storage system. It manages [data distribution]({% link {{ page.version.version }}/architecture/distribution-layer.md %}), [replication and rebalancing]({% link {{ page.version.version }}/architecture/replication-layer.md %}), and fault tolerance using [Raft]({% link {{ page.version.version }}/architecture/replication-layer.md %}#raft). Putting CockroachDB's data directory on a distributed storage system adds a second, separate layer that also does replication and failure handling. These layers do not coordinate with each other. This can cause problems such as: duplicate replication and extra writes; higher and more variable latency due to network hops in the I/O path; conflicting recovery behavior when something fails; and more complex, harder-to-debug failures in general.
0 commit comments