- Can your application change from pessimistic to optimistic concurrency control? Optimistic can be a problem when concurrent transactions attempt to modify the same row. If this is frequent then rollbacks will be frequent. Pessimistic handles this case by making transactions wait. As long as transactions are short then commits will eventually get done for all transactions. I am curious about techniques used with optimistic concurrency control to avoid pushing the problem back to the application programmers.
- Can your application tolerate higher latency on commit? Sync replication requires at least one round trip between replicas. Will the replicas be far apart, as in 100 milliseconds apart? Or are they in the same datacenter or geographic region?
- Are you willing to operate a system that is more complex in the steady state (sync replication) or only complex when things fail (async replication)?
Thursday, September 27, 2012
But all things are not equal. A solution that avoids failover because synchronous replication is done between multiple masters can be awesome, but it also behaves differently and the awesomeness comes at a cost. For some users the benefit far outweighs the cost and Galera is amazing. I can't wait to read more about production deployments of it.