What is MVCC and ACID in Postgresql ?
Postgres uses MVCC so that readers don’t block writers and writers don’t
block readers. Transactions proceed concurrently where there is no contention.
ACID (Atomicity, Consistency, Isolation, and Durability) :
This is database guaranteed to remain in a consistent state
If the underlying file system remains intact, then the database will have
all committed transactions saved. If the crash occurs in a way that
corrupts the disks (be careful of ide disks that report writes as complete
before the data is safe) then there are no guarantees.
Atomicity. In a transaction involving two or more discrete pieces of information, either all of the pieces are committed or none are.
Consistency. A transaction either creates a new and valid state of data, or, if any failure occurs, returns all data to its state before the transaction was started.
Isolation. A transaction in process and not yet committed must remain isolated from any other transaction.
Durability. Committed data is saved by the system such that, even in the event of a failure and system restart, the data is available in its correct state.