Given a schedule D
& R(A) \\ & W(A)\\ & Com. \\R(A) & \\ W(A) & \\ Com. & \end{bmatrix}</math>
In this example, T1 has read the original value of A, and is waiting for T2 to finish. T2 also reads the original value of A, overwrites A, and commits.
However, when T1 reads to A, it discovers two different versions of A, and T1 would be forced to abort, because T1 would not know what to do. This is an unrepeatable read.
Let's take a real life example. Let's say two people Ben and Kathryn went to Ticketmaster and wanted to order season tickets to see the Toronto Raptors. There's only one season ticket left. Ben signs on to Ticketmaster first and finds one left, but it's $600! Ben has to think about it for a while. Kathryn signs on and finds one ticket left, orders it instantly because she has $600 to spend. Kathryn logs off. Finally Ben agrees to buy a ticket...... but to his surprise there is no more tickets!! Ben is angry and sues Ticketmaster.
This could never occur in a serial schedule. Strict 2PL prevents this conflict.
Search Encyclopedia
|
Featured Article
|