In a schedule, if update performed by transaction T1 on data item ‘X’ gets overwritten by the update performed by transaction T2 on same data item ‘X’, then we say that update of T1 is lost to the update of T2.
This problem is known as Lost-Update-Problem in concurrent schedules.
with X = 50 and Y =50 (initial values)
A schedule is the representation of execution sequence for all the instructions of the transactions. Schedules are categorized in two types:
- Serial Schedules
- Concurrent Schedules
A schedule is said to be serial if and only if all the instructions of all the transactions get executed non-preemptively as an unit. OR
Each serial schedule consists of a sequence of instructions from various transactions, where the instructions belonging to one single transaction appear together in that schedule.
Precedence graph algorithm can be used to find out whether the given concurrent schedule is conflict serializable or not.
- Create the number of node in the graph equal to the number of transactions in the given schedule.
- Starting with each and every transaction identify all the existing conflicting operations and represent them in the graph in the form of edges following the direction of the conflicting operation.
- Check if the precedence graph has either a cycle or a loop.
- If the cycle or loop does exist, then the given schedule is not conflict serializable.
- Else the schedule is conflict serializable.
- In case the schedule is conflict serializable then apply the Topological ordering in the graph to find out the equivalent serial schedule.