written 6.3 years ago by |
• In timestamp based concurrency control algorithms, each site maintains a logical clock.
• This clock is incremented when a transaction is submitted at that site and updated whenever the site receives a message with a higher clock value.
• Each transaction is assigned a unique timestamp and conflicting actions are executed in order of the timestamp of their transactions.
• Timestamps can be used in two ways:
• To determine the currency or out datedness of a request with respect to the data object it is operating on.
• To order events with respect to one another.
• In timestamp based concurrency control algorithms , the serialization order of transactions is selected a priori, and transactions are forced to follow this order
Timestamps
• Each transaction Ti, upon starting up, is assigned a timestamp TS(Ti).
• This can be implemented using either the system clock, or a logical counter that is incremented after a new timestamp is issued.
• Timestamps are used to determine the serializability order: if TS(Ti) < TS(Tj), then for a schedule to be valid, it must be equivalent to some serial schedule in which Ti appears before Tj.
• Each data item Q is associated with two timestamp values.
• WTS(Q): the timestamp of the most recent transaction that successfully executed write(Q).
• RTS(Q): the timestamp of the most recent transaction that successfully executed read(Q).
Timestamp-Ordering Protocol and Its Rules
When a transaction Ti issues a read(Q) instruction:
If TS(Ti) < WTS(Q), Ti would read a value of Q that was already overwritten by a newer transaction Tj 6= Ti
Hence, this read is rejected and Ti will be rolled back.
If TS(Ti) ≥ WTS(Q), the read is approved, and we set RTS(Q) := max{RTS(Q),TS(Ti)}.
Since multiple read(Q)’s are not conflict actions, there is no need to compare TS(Ti) and RTS(Q).
When a transaction Ti issues write(Q):
If TS(Ti) < RTS(Q), the write is rejected and Ti will be rolled back.
If TS(Ti) < WTS(Q), then Ti is trying to write an obsolete value of Q, and hence it’s not allowed and Ti is rolled back
Otherwise, the write is approved, and we set WTS(Q) := TS(Ti).Once again, a schedule must be equivalent to some serial schedule in which Ti appears before Tj, and this is the very reason behind all rejection rules specified above.