Operates on tentative versions of data
- Each Transaction receives global unique timestamp on initiation
- Every object, x, in the system or database carries the maximum (ie
youngest) timestamp of last transaction to read RTM(x)2.3 and maximum of last transaction to write
WTM(x)2.4
- If transaction requests operation that conflicts with younger
transaction, older transaction restarted with new timestamp.
- Transactions committed in order of timestamps, so a transaction
may have to wait for earlier transaction to commit or abort before
committing.
- Since tentative version is only written when transaction is
committed, read operations may have to wait until the last
transaction to write has committed.
An operation in transaction Ti with start time TSi
is valid if:
- The operation is a read operation and the object was last
written by an older transaction ie
TSi > WTM(x). If read permissible,
RTM(x) = MAX(TSi, RTM(x))
- The operation is a write operation and the object was
last read and written by older transactions ie
TSi > RTM(x) and
TSi > WTM(x). If permissible,
WTM(x) = TSi
Ian Wakeman
2005-02-22