Skip to content

Recoverability

Recoverable Schedule

A schedule is recoverable if any piece of data read from transaction \(T\) by transaction \(U\) is committed by \(T\) before it is read by \(U\).

Dirty Read

A dirty read is a read made on data before it is committed. This is a problem. If the data is corrupted and the transaction needs to be aborted, the dirty read cascades this problem over. * A recoverable schedule will have no dirty reads.

Rollback Cascading

An abortion of a single transaction can lead to inconsistency in a chain of transactions. In the absence of a dirty read, cascading rollback is avoided. To fix this, we will need to rollback both the original transaction, as well as the dependent transictions.

A schedule where this does not happen is referred to as a cascadeless schedule. All cascadeless schedules are recoverable, but not the other way round.