MVCC
Problem
Readers and writers constantly blocking one another can severely reduce concurrency.
Can a reader see a stable view while another transaction updates the data?
Solution — MVCC
MVCC stands for Multiversion Concurrency Control.
The database maintains multiple versions of data.
Old version ← Reader New version ← Writer
Transactions can see appropriate versions without every read blocking every write.
Core idea: MVCC uses data versions to provide transactional views with greater concurrency.