written 8.4 years ago by | modified 2.9 years ago by |
Mumbai University > Computer Engineering > Sem 4 > Database Management System
Marks: 10M
Year: May 2015
written 8.4 years ago by | modified 2.9 years ago by |
Mumbai University > Computer Engineering > Sem 4 > Database Management System
Marks: 10M
Year: May 2015
written 8.4 years ago by |
$T_8$ | $T_9$ | |
---|---|---|
read(A) | $T_9$ is dependent on $T_8$ | |
write(A) | Non recoverable schedule if $T_9$ commits before $T_8$ | |
read(A) | ||
read(B) |
Non recoverable schedules may sometimes be needed when updates must be made visible early due to time constraints, even if they have not yet been committed, which may be required for every long duration transactions.
Recovery with Concurrent Transactions:
When more than one transaction are being executed in parallel, the logs are interleaved. At the time of recovery, it would become hard for the recovery system to backtrack all logs, and then start recovering. To ease this situation, most modern DBMS use the concept of 'checkpoints'.
Checkpoint:
Recovery:
<checkpoint l=""> where L is the list of transactions active at the time of the checkpoint
If the recovery system sees a log with <tn, start=""> but no commit or abort log found, it puts the transaction in undo-list.