(continuation from the previous slide)
8 T' creates a new version (x,T',v') of the tuple (x,T,v)
9 Any further updates by T' on the same tuple (x,T',v) occur in-place
10 If T' commits then it leaves the newest version of the tuple with the last update on it
11 If T' does not commit then no new version (x,T',v') is left
12 If T' deletes a tuple (x,T,v) then a new version (x,T',⊥) is created
13 If T' inserts a tuple (x,T',v') then such insertion is possible only when a tuple (x,T',⊥) exists or when no tuple with a key x exists
The rules listed above lead to a conclusion that multiversion concurency control (MVCC) protocol allows for linear version histories (x,T1,v1), (x,T2,v2), ... , (x,Tn,vn) when the transactions are committed in the order T1, T2, ... ,Tn and for all i=2, ... n a transaction Ti has seen a version (x,Ti-1,vi-1) when creating a version (x, Ti, vi)