Multi-Version Concurrency Control. Each row has a chain of versions (txid_min, txid_max). A transaction sees only versions visible at its snapshot moment. Writers don't block readers; readers don't block writers.
Postgres MVCC: VACUUM cleans up dead versions. Long-running transactions block VACUUM → bloat. Watch pg_stat_activity.