MVCC (Multi-Version Concurrency Control) yra būdas, kuriuo PostgreSQL tvarko lygiagretų prieigą — vietoj eilučių blokavimo skaityti, jis saugo kelias eilučių versijas, todėl kiekviena transakcija mato nuoseklų duomenų momentinį vaizdą. Pagrindinis pranašumas: skaitytojai neblokuoja rašytojus, o rašytojai neblokuoja skaitytojus, tai suteikia didelį lygiagretumą.
Pagrindinė idėja: kelios eilučių versijos
When a row is UPDATED, Postgres doesn't overwrite it — it creates a NEW version and
marks the old one obsolete. Different transactions can see different versions.
→ Each transaction sees a consistent SNAPSHOT of the database as of its start
(depending on isolation level), unaffected by others' uncommitted changes.
