2 ms·
Well, the basic design of Cockroach (assuming no bugs) prioritizes consistency over availability, which means that your data should be safe even if the network
by teraflop 10y ago
Well, the basic design of Cockroach (assuming no bugs) prioritizes consistency over availability, which means that your data should be safe even if the network is misbehaves arbitrarily. So the really interesting question is, how much availability can you expect?
"Mesh network" implies that the network should reconfigure itself if individual nodes or links fail. That's fine, but it will necessarily take some time to detect a failed connection, which means temporary unavailability while the database performs a leader election. CockroachDB is sharded, so if any single shard loses a majority of its nodes or becomes too badly partitioned, that shard becomes unavailabile until the network is restored. There's a tradeoff here -- if you're willing to accept slower performance, you can increase the number of replicas per shard.
(It's also interesting to think about what happens under heavy load. If the Cockroach daemons are handling requests as fast as they can, then whatever daemon is responsible for the mesh routing decision-making could become starved for CPU, leading to high packet loss or intermittent network partitions.)
- gravypod 10y agoIdeally the only thing running on the nodes is a set of programs logging data. The actual queries should come from outside the network. Is it possible to get CDB to exfiltrate it's data into a single node or another cluster of nodes?