Chapter_7 - Recovery
Chapter_7 - Recovery
1
Outline
2
1. Purpose of Database Recovery
◼ To bring the database into the last consistent state,
which existed prior to the failure.
◼ To preserve transaction properties (Atomicity,
Consistency, Isolation and Durability).
◼ Example:
❑ If the system crashes before a fund transfer
transaction completes its execution, then either one or
both accounts may have incorrect value.
❑ Thus, the database must be restored to the state
before the transaction modified any of the accounts.
2. Recovery Concepts (1)
Types of Failure
◼ The database may become unavailable for use
due to
❑ Transaction failure: Transactions may fail because
of incorrect input, deadlock, incorrect synchronization.
❑ System failure: System may fail because of
addressing error, application error, operating system
fault, RAM failure, etc.
❑ Media failure: Disk head crash, power disruption, etc.
Recovery Concepts (2)
Transaction Log
◼ For recovery from any type of failure data values prior to
modification (BFIM - BeFore Image) and the new value after
modification (AFIM – AFter Image) are required.
◼ These values and other information is stored in a sequential
file called Transaction log. A sample log is given below. Back
P and Next P point to the previous and next log records of the
same transaction.
T ID Back P Next P Operation Data item BFIM AFIM
T1 0 1 Begin
T1 1 4 Write X X = 100 X = 200
T2 0 8 Begin
T1 2 5 W Y Y = 50 Y = 100
T1 4 7 R M M = 200 M = 200
T3 0 9 R N N = 400 N = 400
T1 5 nil End
Recovery Concepts (3)
Data Caching
◼ Data items to be modified are first stored into
database cache by the Cache Manager (CM)
and after modification they are flushed (written)
to the disk.
◼ The flushing is controlled by Modified and Pin-
Unpin bits.
❑ Pin-Unpin: Instructs the operating system not to flush
the data item.
❑ Modified: Indicates the AFIM of the data item.
Recovery Concepts (4)
Data Update:
◼ Immediate Update: As soon as a data item is modified in
cache, the disk copy is updated.
◼ Deferred Update: All modified data items in the cache is
written either after a transaction ends its execution or after a
fixed number of transactions have completed their execution.
◼ Shadow update: The modified version of a data item does
not overwrite its disk copy but is written at a separate disk
location.
◼ In-place update: The disk version of the data item is
overwritten by the cache version.
Recovery Concepts (5)
11
Recovery Concepts (9)
Checkpointing
◼ Time to time (randomly or under some criteria) the
database flushes its buffer to database disk to
minimize the task of recovery. The following steps
defines a checkpoint operation:
1. Suspend execution of transactions temporarily.
2. Force write modified buffer data to disk.
3. Write a [checkpoint] record to the log, save the log to disk.
4. Resume normal transaction execution.
◼ During recovery redo or undo is required to
transactions appearing after [checkpoint] record.
Recovery Concepts (10)
Fuzzy Checkpointing
◼ The time need to force-write all modified memory
buffers may delay transaction processing
→ Fuzzy checkpointing.
◼ System can resume transaction processing after a
[begin_checkpoint] record is written to the log without
having to wait for step 2 to finish.
◼ When step 2 is completed → [end_checkpoint] record is
written to the log.
◼ Until step 2 is commpleted, the previous checkpoint
record should maintain valid.
3. Recovery Based on Deferred
Update (1)
◼ Deferred Update (No Undo/Redo)
◼ The data update goes as follows:
❑ A set of transactions records their updates in the
log.
❑ At commit point under WAL scheme these
updates are saved on database disk.
❑ After reboot from a failure the log is used to redo
all the transactions affected by this failure. No
undo is required because no AFIM is flushed to
the disk before a transaction commits.
Recovery Based on Deferred Update (2)
◼ Deferred Update in a single-user system
There is no concurrent data sharing in a single user
system. The data update goes as follows:
❑ A set of transactions records their updates in the log.
❑ At commit point under WAL scheme these updates are
saved on database disk.
◼ After reboot from a failure the log is used to redo all the
transactions affected by this failure. No undo is required
because no AFIM is flushed to the disk before a
transaction commits.
T1 T2
read_item (A) read_item (B)
read_item (D) write_item (B)
write_item (D) read_item (D)
write_item (D)
D 20
B 15
A 20
4. Recovery Based on Immediate
Update (1)
◼ Undo/No-redo Algorithm
❑ In this algorithm AFIMs of a transaction are
flushed to the database disk under WAL before it
commits.
❑ For this reason the recovery manager undoes all
transactions during recovery.
❑ No transaction is redone.
❑ It is possible that a transaction might have
completed execution and ready to commit but this
transaction is also undone.
Recovery Based on Immediate
Update (2)
◼ Undo/Redo Algorithm (Single-user
environment)
❑ Recovery schemes of this category apply undo and
also redo for recovery.
❑ In a single-user environment no concurrency control is
required but a log is maintained under WAL.
❑ Note that at any time there will be one transaction in
the system and it will be either in the commit table or
in the active table.
❑ The recovery manager performs:
◼ Undo of a transaction if it is in the active table.
◼ Redo of a transaction if it is in the commit table.
Recovery Based on Immediate
Update (3)
◼ Undo/Redo Algorithm (Concurrent execution)
◼ Recovery schemes of this category applies undo and
also redo to recover the database from failure.
◼ In concurrent execution environment a concurrency
control is required and log is maintained under WAL.
◼ Commit table records transactions to be committed and
active table records active transactions. To minimize the
work of the recovery manager checkpointing is used.
◼ The recovery performs:
❑ Undo of a transaction if it is in the active table.
❑ Redo of a transaction if it is in the commit table.
--- log ---
[start_transaction, T1]
[write_item, T1, D, 12, 20]
[checkpoint]
[start_transaction, T4]
[write_item, T4, B, 23, 15] Undo: T2 & T3
[start_transaction T2]
[commit, T1] B 12
[write_item, T2, B, 15, 12] D 20
[start_transaction, T3] A 20
[write_item, T4, A, 30, 20] B 15
[commit, T4]
[write_item, T3, A, 20, 30]
[write_item, T2, D, 20, 25]
[write_item, T2, B, 12, 17] Redo: T1 & T4
system crash D 20
B 15
A 20
5. Shadow paging (1)
◼ The AFIM does not overwrite its BFIM but recorded at
another place on the disk. Thus, at any time a data item
has AFIM and BFIM (Shadow copy of the data item) at
two different places on the disk.
X Y
X' Y'
Database
X and Y: Shadow copies of data items
X' and Y': Current copies of data items
Shadow paging (2)
◼ To manage access of data items by concurrent transactions
two directories (current and shadow) are used.
❑ The directory arrangement is illustrated below. Here a page
is a data item.
Shadow paging (3)
◼ Recovery:
❑ Free the modified database pages and to discard
the current directory (reinstating the shadow
directory)
◼ Committing a transaction corresponding to
discarding the previous shadow directory.
◼ NO-UNDO/ NO-REDO
◼ In a multiuser environment→ use logs and
checkpoints
27
6. ARIES Recovery Algorithm (1)
◼ Steal/no-force (UNDO/REDO)
◼ The ARIES Recovery Algorithm is based on:
❑ WAL (Write Ahead Logging)
❑ Repeating history during redo:
◼ ARIES will retrace all actions of the database system
prior to the crash to reconstruct the database state when
the crash occurred.
❑ Logging changes during undo:
◼ It will prevent ARIES from repeating the completed undo
operations if a failure occurs during recovery, which
causes a restart of the recovery process.
ARIES Recovery Algorithm (2)
undo redo
7. Recovery in multidatabase system
◼ A multidatabase system is a special distributed database
system where one node may be running relational database
system under UNIX, another may be running object-oriented
system under Windows and so on.
◼ A transaction may run in a distributed fashion at multiple
nodes.
◼ In this execution scenario the transaction commits only when
all these multiple nodes agree to commit individually the part
of the transaction they were executing.
◼ This commit scheme is referred to as “two-phase commit”
(2PC).
❑ If any one of these nodes fails or cannot commit the part of
the transaction, then the transaction is aborted.
◼ Each node recovers the transaction under its own recovery
protocol.
Final exam
◼ 90 minutes
◼ Multiple choice + essay questions
◼ Open test (only paper document)
40