MVCC (Multi-Version Concurrency Control)
MVCC (Multi-Version Concurrency Control) lets readers and writers work on the same table at the same time without blocking each other, by keeping multiple versions of a row so each transaction sees a consistent snapshot of the data as of when it started.
Without MVCC, a long-running read would have to wait for concurrent writes to finish (or vice versa) to guarantee consistency. With it, a SELECT can run against a stable snapshot while UPDATEs continue to create new row versions elsewhere.
The two major open engines implement this differently: PostgreSQL keeps old row versions directly in the table's storage and relies on VACUUM to reclaim space from versions no longer needed by any transaction. Oracle instead writes old versions to separate undo segments, keeping the main table storage lean.