9 ms·
Do you know of any relational products which offer high-throughput, low-latency, high-availability transaction processing using perfectly synchronous multi-mast
by jeffdavis 10y ago
Do you know of any relational products which offer high-throughput, low-latency, high-availability transaction processing using perfectly synchronous multi-master replication?
- nine_k 10y agoDoesn't Oracle offer such an option?
- gaius 10y agoI am well known as a database guy, but for a scenario like this I think best practice is probably CICS.
- vidarh 10y agoYou can't guarantee low latency and consistency without setting geographical boundaries on the distribution of the servers, unless you have very generous definitions of "low latency", as the speed of light (and more realistically: the speed you can transmit a signal via the internet, which is substantially lower) between the servers will place lower bounds on latency. This is the case as you can't guarantee consistency without coordination between the servers (or you won't know what order to make operations visible in the case of multi-master, or whether a transaction has even been successfully applied by a slave when replicating master-slave), which at a bare minimum involves one round-trip (sending a transaction, and waiting for confirmation that it has been applied; assuming no conflicts requiring additional effort to reconcile). You can pipeline some stuff to partially avoid actual delays, but you can't avoid the signalling, and for many applications it has disastrous effect on throughput when certain tables/rows are highly contended.
- nine_k 10y agoYes, I meant a strictly one-cluster solution for machines within the same datacenter and preferably the same rack. Synchronous replication across such a cluster can give much more read performance with write consistency and durability guarantees even when hardware failures occur. I don't know if any potential write performance increase would be worth the increased complexity, compared to a standard single-master setup.
- throwaway_xx9 10y agoThe 3 that come to mind are Oracle RAQ, Galera/Percona Cluster and MySQL NDB Cluster (but FKs are still flaky). However all work best when the DCs are within a few milliseconds of each other and you have a reasonably reliable Internet connection. (AWS within one region qualifies.) Most people are still better off with Active Master-Standby Master setups overall.
- lmm 10y agoNo. But I am aware of products that don't silently drop written data. That should be a pretty low bar.