Abstract
- Transaction that is Atomic, Consistent, Isolation & Durable
- Usually achieved with Lock
Cons
- Costly
- Difficult to scale
Data always consistent
This ensures Data never falls into an inconsistent state because of an Transaction that only partially completes.
Guarantees that a
READ
will return the latest successfulWRITE
.
Atomic
- A quality that ensures each Transaction is fully committed or not at all
- It treats each Transaction as a single unit of change to Database and can’t be partially completed
- Transaction is either committed or rolled back
Consistent
- A quality that ensures the Database is in a consistent and valid state after a Transaction is committed
- It prevents the Database from being corrupted
Isolation
- Ensures that Transaction are independent
- Each Transaction can occur as though they were occurring one by one, even though they’re actually occurring simultaneously
- Ensures that data is managed between database operations so it is not used in Transaction simultaneously. Instead, the first transaction will complete, and then the next will begin
Durable
- Permanently preserves all Transaction by saving to permanent storage, not kept in volatile memory
- Ensures changes to data made by successfully executed Transaction will be saved, even in the event of system failure (like power loss)