The Nukemblog
Traditionally, ACID is at the core of database usage. Like the JVM memory model it represents the fundamental promises made by databases to programmers, ensuring data sanity in an insane world. Unfortunately, ACID as imagined by programmers exists only in fantasy - in reality the ANSI standard is poorly defined and understood and databases often deviate from it, with possible data anomalies. If that’s not bad enough, ACID requires a specific use pattern which is rarely implemented as prescribed due to performance concerns, thus the programmers themselves often break ACID guarantees. Given this poor state of affairs, we must ask: how do we restore data sanity to the world? Is ACID the right tool? What else is available?