I was reading multiversion timestamp ordering protocol from the book Database Systems Concepts by Korth. It can be explained in simpler words as follows:
Each data item version $Q$ has two timestamps associated with it:
- W-timestamp: the timestamp of the transaction that created version
- R-timestamp: the largest timestamp of any transaction that successfully read version
Let $Q_k$ denote the version of $Q$ whose write timestamp is the largest write timestamp less than or equal to $TS(Ti)$.
- If transaction $T_i$ issues a $read(Q)$, then the value returned is the content of version $Q_k$, thus reading the most recent version that comes before $T_i$.
- If transaction $T_i$ issues $write(Q)$, and
- if $TS(T_i) < R-timestamp(Q_k)$, then the system rolls back transaction $T_i$.
- if $TS(T_i) = W-timestamp(Q_k)$, the system overwrites the contents of $Q_k$;
- if $TS(T_i) > R-timestamp(Q_k)$, it creates a new version of $Q$.
- What happens when TS(Ti) < W-timestamp(Qk) and when TS(Ti) > W-timestamp(Qk)?
- The set of schedules possible under multiversion timestamp ordering protocol forms superset of set of schedules possible under Thomas write rule. I know that Thomas write rule allows non conflict serializable schedules. So same must be true for multiversion protocol. Right?
- Also I know that Thomas write rule allows view serializable schedules. Does the schedules produced by multiversion protocol are also view serializable?
Though above questions seems valid and important to me, I had following doubts: is it worth to give so much importance to this topic fo GATE perspective? Also it seems that Elmasri Navathe's book gives somewhat different definition for the multiversion timestamp ordering protocol. Also it seems that this topic was never being asked in previous year GATE papers. (Or I am wrong and it was indeed asked in previous year GATE paper?) Can we safely skip it?