ACID vs BASE

ACID (Predominantly SQL, or consistency is prioritized)

  • Atomicity: if statements or operations composed of multiple statements fail, the database should be rolled back to the state prior to the operation attempt, even in the case of database power failure
  • Consistency: no race conditions when retrieving data (a successful operation should immediately change a database from a valid state to another valid state
  • Isolation: if two different operations are executed concurrently, they should result in the same post-operation state that would occur if the operations were executed sequentially
  • Durability: data should be stored in non-volatile memory, e.g., something like a power outage should not result in lost data

BASE (Predominantly NoSQL, or availability is prioritized)

  • Basically Available: data should always be available, but not necessarily expected to be consistent (immediately after operations, nodes may have different data)
  • Soft State: whether or not the data is consistent across nodes after a certain amount of time has passed after an update cannot be known for sure, but a probability can be determined and can be used to either guess at consistency or accept a probable lack of consistency at the moment
  • Eventually Consistent: as the time after an update increases, the probability of consistency increases to near 100%, and after that point, the database can be assumed to be consistent

Leave a Reply