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
|