ACID vs BASE Semantics Référence
Référence pour ACID (traditional) vs BASE (NoSQL) transaction semantics et eventual consistency.
ACID Properties
ACID guarantees strict consistency: Atomicity (all-or-nothing), Consistency (valid state transitions), Isolation (serial appearance), Durability (committed survives). ACID is provided by traditional RDBMS with locking or MVCC. It ensures correctness but limits scalability and availability during partitions. Two-phase commit extends ACID across distributed systems but is slow and blocking. ACID is essential for financial transactions and any system where inconsistency is unacceptable. The cost is reduced concurrency and horizontal scalability.
- Atomicity
- All-or-nothing
- Isolation
- Serial appearance
- Durability
- Survives crash
rollback locking/MVCC WAL, fsync BASE Semantics
BASE offers relaxed guarantees: Basically Available (system mostly works), Soft state (state may change without input due to reconciliation), Eventual consistency (converges to consistent state given no updates). BASE enables high availability and horizontal scaling. Eventual consistency models: read-your-writes, monotonic reads, session consistency. Strong eventual consistency (CRDTs) guarantees convergence with no conflicts. The tradeoff is temporary inconsistency, acceptable for social media, counters, and caches. Choose ACID for correctness-critical, BASE for availability-critical systems.
- Basically Avail
- Mostly works
- Soft state
- Changes without input
- Eventual
- Converges over time
AP systems reconciliation CRDTs help