Replication method consideration

#1

Hi! I have five data centers with three instances in each DC, and I need to have the possibility to write/read data in/from each data center. So which replication method I should prefer? Is three_datacenter method will fulfill my needs or I need to choose region configuration instead?

(Alex Miller) #2

We don’t have a great answer to having one cluster that offers >1 DC of fault tolerance yet.

Though it’s theoretically possible to run three_datacenter mode with more than three datacenters, I think we discovered that an assertion will accidentally fail if you try and run it with >3 datacenters, thus proving that no one has tried to so far. Three datacenter mode will eventually be deprecated in favor of multi-region, but multi-region currently only supports 2 regions at most.

The only way to utilize your hosts right now would be to do a multi-region cluster of using two of the DCs as primary and secondary, a third DC as a satellite, and leave the other two not specified in the region configuration.

So if you need a failure tolerance of 2 or more datacenters, I think FDB isn’t a good fit for your use case right now, and I’d suggest checking back in two or three releases from now when we’ve hopefully made sufficient progress on multi-region supporting more than two regions.

Do note that any of the available options will give high write latency for all but one of your DCs (the primary), and non-stale reads will still require one round trip to the primary to get a read version. Depending on how you meant “read/write in/from each datacenter”, that may or may not match what you require anyway.