Fork me on GitHub
#xtdb
<
2019-05-31
>
anovick20:05:26

Hi again! 🙂 I'm curious to hear about the replication strategy of Crux instances in the Cluster configuration. In the face of a network partitioning, two choices could be made: 1. An isolated db instance doesn't allow writes from clients that can reach it. 2. An isolated db instance would continue to operate on its own and permit writes, which it would eventually synchronize once the partition is removed. Which replication strategy does the Cluster configuration employ?

anovick21:05:18

On a second reading of the docs, it seems that the presumed model for which the above two options are possible was a wrong assumption on my part. Cluster configuration uses a single Kafka transaction log server for all db instances operations (instances described as nodes in the docs). Once writes are registered on the Kafka log server, it would propogate write operations to all db instances (that are reachable). Thus, partitioned instances are unavailable to clients, and when stale, will synchronize with the Kafka log server (the source of truth) once the partition is removed.

✔️ 4
refset21:06:25

Hey! Sorry this wasn't more obvious during your first reading, but you definitely have the right answer now 🙂 I will have a think about how to make this clearer on the first reading -- any tips would be welcome!