Documente Academic
Documente Profesional
Documente Cultură
20051209: slides18: 1 of 27
Types of failures:
· Transaction Failure:
· This is a logical failure, caused by a deadlock
or other reason that the transaction cannot be
completed.
· Examples:
· Deadlock
· Programming error in transaction
· Recovery uses logs written to primary and/or
secondary storage as a resource.
· System Failure:
· This is a temporary failure, which wipes out
primary memory, but not secondary (disk
memory).
· Types
· Software failure
· Hardware or power failure
· Recovery uses logs which were written to
secondary storage (disks).
20051209: slides18: 2 of 27
The Recovery Manager:
Transaction terminators:
· The recovery manager must process abort
commands from transactions, since portions of
other transactions may need to be undone
(rollback) or redone.
· The recovery manager must process commit
commands from transactions, so it knows which
writes are permanent and cannot be aborted.
Recover commands:
· The recovery manager handles explicit recovery
requests from the system.
20051209: slides18: 3 of 27
Basic Update Strategies:
Deferred update:
· All writes within a transaction are recorded in a
temporary log.
· During the lifetime of the transaction, these writes
are invisible to other transactions.
· When the transaction is completed, these
changes are written to the database in one
logically indivisible operation (at the commit
operation).
Immediate update:
· All writes within a transaction are written directly
to the database, where they are visible to other
transactions.
20051209: slides18: 4 of 27
Example: T1 = r(x) w(x) r(y) w(y)
T2 = r(y) w(y) r(z) w(z)
Deferred update:
Immediate update:
20051209: slides18: 5 of 27
The Transaction Log:
Begin(Transaction)
Commit(Transaction)
Abort(Transaction)
Before_Image(Transaction, Data_object)
= The value of Data_object before it is written by
Transaction.
After_Image(Transaction, Data_object)
= The value of Data_object after it is written by
Transaction.
20051209: slides18: 6 of 27
Example of Log Entries with Pure
Deferred Update:
T1 T2 Augment Database
Trans. Log
x0 y0 z0
Begin Begin(T1)
r(x)
w(x) After(T1,x)
Begin Begin(T2)
r(y)
w(y) After(T2,y)
r(y) [y0]
w(y) After(T1,y)
x1 y1 z0
Commit Commit(T1)
r(z)
w(z) After(T2,z)
x1 y2 z2
Commit Commit(T2)
20051209: slides18: 7 of 27
Recovery with Pure Deferred Update:
20051209: slides18: 8 of 27
Example of Log Entries with Pure
Immediate Update:
T1 T2 Trans. Log Database
x0 y0 z0
Begin Begin(T1)
r(x) Read(T1,x)
Before(T1,x)
After(T1,x)
w(x) x1 y0 z0
Begin Begin(T2)
r(y) Read(T2,y)
Before(T2,y)
After(T2,y)
w(y) x1 y2 z0
r(y) [y2] Read(T1,y)
Before(T1,y)
After(T1,y)
w(y) x1 y1 z0
Commit Commit(T1)
r(z) Read(T2,z)
Before(T2,z)
After(T2,z)
w(z) x1 y1 z2
Commit Commit(T2)
20051209: slides18: 9 of 27
Recovery with Pure Immediate Update:
20051209: slides18: 10 of 27
Recoverable Schedules
20051209: slides18: 11 of 27
Unsuitability of the Pure Update Strategies
20051209: slides18: 12 of 27
Basic Properties of Every Recovery
Algorithm:
Before looking at less ideal but more effective
strategies, it is useful to identify some key points
which must be kept in mind, regardless of approach.
Commit point:
· Every transaction has a commit point. This is the
point at which it is finished, and all of the
database modifications which it mandates are
made a permanent part of the database.
· Once it has committed, a transaction can no
longer be aborted (although it may need to be
“undone” as part of a recovery process.)
· Under some strategies, a transaction may modify
the database before it has committed.
20051209: slides18: 13 of 27
DBMS Caches and Checkpoints
· Any practical logging and recovery strategy will
make use of a fast but volatile DBMS cache (also
called a DBMS buffer) to store data temporarily.
20051209: slides18: 14 of 27
Pages in the DBMS Cache
20051209: slides18: 15 of 27
In-Place vs. Shadowed Updating of the
DBMS Cache
In-Place updating:
Shadow updating:
20051209: slides18: 16 of 27
Some Modified Approaches to Recovery
Management
20051209: slides18: 17 of 27
Steal vs. No-Steal Approaches
· These strategies relate the point at which a page
of the DBMS cache may be written to permanent
secondary storage to the point at which a
transaction commits.
20051209: slides18: 18 of 27
Force vs. No-Force Approaches
· These strategies relate the point at which a page
of the DBMS cache must be written to permanent
secondary storage to the point at which a
transaction commits.
20051209: slides18: 19 of 27
Shadow Paging for Database Systems
· This approach is related to shadow updating of
disk caches. However, the emphasis here is
upon the directory itself, and not how it is
maintained.
20051209: slides18: 20 of 27
· Ideally, this is almost a no-undo/no-redo strategy.
(To be truly so, directory update would have to be
performed in a single uninterruptable step.)
A modified strategy:
20051209: slides18: 21 of 27
Log Security:
20051209: slides18: 22 of 27
Summary of Before and After Images:
20051209: slides18: 23 of 27
Summary of Undo and Redo and Rerun
Operations:
20051209: slides18: 24 of 27
· Rerun is needed when the transaction did not
commit reliably; for example, when it is rolled
back after an undo. It is generally implied after
an undo.
20051209: slides18: 25 of 27
Recovery from Disk Crashes
20051209: slides18: 26 of 27
Using the Log to Reconstruct the
Database:
Assumption:
· The transaction log is kept on a separate disk
from the database.
· This is a good safety measure in any case.
Requirement:
· The log must record after-images, regardless of
the update strategy.
Algorithm:
· Assume that the database has been saved to a
further archive at time point t.
· Assume that the log contains after images for all
transactions which occurred after time point t.
· The database may then be restored by installing
the after images to (a copy of) the archive.
· If immediate update or a more complex strategy
is used, further processing may be necessary on
this restored copy, as per the previous
algorithms.
20051209: slides18: 27 of 27