Serialisable Schedules:If the processes of two transactions conflict with each other, how to verify that no concurrency related problems have happened? For this, serialisability theory has been developed. Serialisability theory attempts to verify the correctness of the schedules. The rule of this theory is:
"A schedule S of n transactions is serialisable if it is equal to some serial schedule of the similar 'n' transactions".
A serial schedule is a schedule in which either transaction T1 is totally done before T2 or transaction T2 is totally done before T1. For instance, the following figure clears the two possible serial schedules of transactions T1 & T2.
Schedule A: T2 followed by T1
|
Schedule B: T1 followed by T2
|
Schedule
|
T1
|
T2
|
Schedule
|
T1
|
T2
|
Read X
|
|
Read X
|
Read X
|
Read X
|
|
Read Y
|
|
Read Y
|
Subtract 100
|
Subtract 100
|
|
Display X+Y
|
|
Display X+Y
|
Write X
|
Write X
|
|
Read X
|
Read X
|
|
Read Y
|
Read Y
|
|
Subtract 100
|
Subtract 100
|
|
Add 100
|
Add 100
|
|
Write X
|
Write X
|
|
Write Y
|
Write Y
|
|
Read Y
|
Read Y
|
|
Read X
|
|
Read X
|
Add 100
|
Add 100
|
|
Read Y
|
|
Read Y
|
Write Y
|
Write Y
|
|
Display X+Y
|
|
Display X+Y
|
Figure: Serial Schedule of two transactions
Schedule C: An Interleaved Schedule
|
Schedule
|
T1
|
T2
|
Read X
|
Read X
|
|
Subtract 100
|
Subtract 100
|
|
Read X
|
|
Read X
|
Write X
|
Write X
|
|
Read Y
|
|
Read Y
|
Read Y
|
Read Y
|
|
Add 100
|
Add 100
|
|
Display X+Y
|
|
Display X+Y
|
Write Y
|
Write Y
|
|
Figure: An Interleaved Schedule
Now, we have to figure out whether this interleaved schedule would be performing read and write in the same order as that of a serial schedule. If it does, then it is equivalent to a serial schedule, otherwise not. In case it is not equivalent to a serial schedule, then it may result in problems due to concurrent transactions.