3 ms·
I personally think that "provides only snapshot isolation" and "provides ACID transactions on a single machine, but sharding, caching, and failover will likely
by lsh123 13y ago
I personally think that "provides only snapshot isolation" and "provides ACID transactions on a single machine, but sharding, caching, and failover will likely violate them as you try to scale" are very different statements. The different isolation modes does not violate ACID transactions and only describe the semantic in more details. I would make a claim that majority of applications can use any isolation mode with ACID transactions as long as application developers understand what exactly going on.
- voidmain 13y agoIsolation levels describe the degree of compliance with the I in ACID. Full compliance is called serializable isolation. Are there valuable uses for lower degrees of isolation? Yes, and a good database should allow applications to selectively reduce isolation. But the inability to support serializable isolation greatly limits the power and composability of a system. Galera looks like an extremely useful tool, and a big improvement on usual (and extremely dangerous) ad hoc failover. Besides the limited isolation level, though, it only really solves failover. Typical large scale database deployments will sacrifice even more ACID properties by sharding (which loses A, C, and I for shard-spanning transactions) and frequently by incoherent caching (which sacrifices isolation for reads that use the cache).