Atomicity, Consistency, Isolation, Durability (ACID)
ACID properties (atomicity, consistency, insulation and durability) are a set of properties that ensure that an IT transaction is executed reliably. In the field of databases, an operation on data is called a computer transaction or IT transaction. For example, a transfer of funds from one bank account to another, even if it involves several actions such as debiting one account and crediting another, is a single transaction.
Atomicity: The atomicity property ensures that a transaction is done in full or not at all: if part of a transaction cannot be done, all traces of the transaction must be erased and the data returned to the state it was in before the transaction. Atomicity must be respected in all situations, such as a power outage, computer failure, or magnetic disk failure.
Consistency: The consistency property ensures that each transaction will take the system from one valid state to another valid state. Any changes to the database must be valid according to all defined rules, including but not limited to integrity constraints, cascading rollbacks, database triggers, and any combination of events.
Isolation: Any transaction must be executed as if it were the only one on the system. No possible dependency between transactions. The isolation property ensures that the simultaneous execution of transactions produces the same state that would be obtained by serial execution of transactions. Each transaction must execute in total isolation: if T1 and T2 execute simultaneously, then each must remain independent of the other.
Durability: The durability property ensures that once a transaction has been confirmed, it remains recorded even after a power outage, computer failure or other problem. For example, in a relational database, when a group of SQL statements has been executed, the results must be permanently saved, even in the event of a power outage immediately after the statements were executed.
Apache Omid provides a transactional layer on top of key/value NoSQL databases. In practice, it is usually used on top of Apache HBase. Credits to Ohad Shacham for his talk and his work for Apache…
May 24, 2018