[prev] 29 [next]

Multi-version Concurrency Control

Multi-version concurrency control (MVCC) aims to
  • retain benefits of locking, while getting more concurrency
  • by providing multiple (consistent) versions of data items
Achieves this by
  • readers access an "appropriate" version of each data item
  • writers make new versions of the data items they modify
Main difference between MVCC and standard locking:
  • read locks do not conflict with write locks
  • reading never blocks writing, writing never blocks reading