Unit - 6 - Transaction and Recovery Management
Unit - 6 - Transaction and Recovery Management
Unit - 6 - Transaction and Recovery Management
CE246:
Databases Management System
• Give you enough information to understand how TXNs work, and the main
concerns with using them
Unit 6 :Transaction & Recovery Management
What is transaction?
• A transaction is a sequence of operations performed as a single logical unit of
work.
• A transaction is a logical unit of work that contains one or more SQL statements.
• Example of transaction Works as a single
logical unit
read (A)
A = A – 50
write (A)
Transaction
Operations
read (B)
B = B + 50
write (B)
Unit 6 :Transaction & Recovery Management
Transaction
• TheState
When
Diagram
transaction enters
a transaction
\ state
State
in this its
executes
Transition
after
final successful
operation, it is said
Diagram
completion of the transaction.
to be in a partially committed state.
• We cannot abort or rollback a committed transaction.
read (A)
Partial
Committed Committed A = A – 50
write (A)
Active End read (B)
B = B + 50
write (B)
Failed Aborted
Commit
• •TheThis
Discover
stateisthat
the
afterinitial
normal state.
executionhas
the transaction canbeen
no longer
rolledproceed.
back and
• •theThe
Once a transaction
transaction
database stays
cannot
has been in be
thiscompleted,
restored state
to its stateany changes
prior to the
thatwhile
start it istransaction.
itofmade
the executing.
must be undone rolling it back.
Unit 6 :Transaction & Recovery Management
• Active
• This is the initial state.
• The transaction stays in this state while it is executing.
• Partial Committed
• When a transaction executes its final operation/ instruction, it is said to be in
a partially committed state.
• Failed
• Discover that normal execution can no longer proceed.
• Once a transaction cannot be completed, any changes that it made must be
undone rolling it back.
Unit 6 :Transaction & Recovery Management
• Committed
• The transaction enters in this state after successful completion of the
transaction (after committing transaction).
• We cannot abort or rollback a committed transaction.
• Aborted
• The state after the transaction has been rolled back and the database has
been restored to its state prior to the start of the transaction.
Unit 6 :Transaction & Recovery Management
What is schedule?
• A schedule is a process of grouping the transactions into one and
executing them in a predefined order.
• A schedule is the chronological (sequential) order in which instructions
are executed in a system.
• A schedule is required in a database because when some transactions
execute in parallel, they may affect the result of the transaction.
• Means if one transaction is updating the values which the other
transaction is accessing, then the order of these two transactions will
change the result of another transaction.
• Hence a schedule is created to execute the transactions.
Unit 6 :Transaction & Recovery Management
Example of schedule
T1 T2 A=B=1000
Read (A) Read (1000)
A = A - 50 A = 1000 - 50
Write (A) Write (950)
Read (B) Read (1000)
B = B + 50 B = 1000 + 50
Write (B) Write (1050)
Commit Commit
Example of schedule
T1 T2 A=B=1000
Read (A) Read (1000)
Temp = A * 0.1 Temp = 1000 * 0.1
A = A - temp A = 1000 - 100
Write (A) Write (900)
Read (B) Read (1000)
B = B + temp B = 1000 + 100
Write (B) Write (1100)
Commit Commit
Read (900)
Read (A)
A = 900 - 50
A = A - 50
Write (850)
Write (A)
Read (1100)
Read (B)
B = 1100 + 50
B = B + 50
Write (1150)
Write (B)
Commit
Commit
Unit 6 :Transaction & Recovery Management
Serial schedule
• A serial schedule is one in which no transaction starts until a running
transaction has ended.
• Transactions are executed one after the other.
• This type of schedule is called a serial schedule, as transactions are
executed in a serial manner.
Unit 6 :Transaction & Recovery Management
Read (A)
Temp = A * 0.1
A = A - temp
Write (A)
Read (B)
B = B + temp
Write (B)
Commit
Unit 6 :Transaction & Recovery Management
Interleaved schedule
• Schedule that interleave the execution of different transactions.
• Means second transaction is started before the first one could end
and execution can switch between the transactions back and forth.
Unit 6 :Transaction & Recovery Management
Read (A)
A = A - 50
Write (A)
Read (B)
B = B + 50
Write (B)
Commit
Unit 6 :Transaction & Recovery Management
Read (A)
Temp = A * 0.1
A = A - temp
Write (A)
Read (B)
B = B + temp
Write (B)
Commit
Unit 6 :Transaction & Recovery Management
Equivalent schedule
• If two schedules produce the same result after execution, they are
said to be equivalent schedule.
• They may yield the same result for some value and different results
for another set of values.
• That's why this equivalence is not generally considered significant.
Unit 6 :Transaction & Recovery Management
Equivalent schedule
T1 T2 T1 T2
Classification
of Schedules:
Unit 6 :Transaction & Recovery Management
Classification of Schedules:
Serial Schedules Serializable Schedules
Serial schedules lead to less resource utilization and Serializable schedules improve both resource
CPU throughput. utilization and CPU throughput.
Serial Schedules are less efficient as compared to Serializable Schedules are always better than serial
serializable schedules. schedules.
(due to above reason) (due to above reason)
Unit 6 :Transaction & Recovery Management
Serializability
• A schedule is serializable if it is equivalent to a serial schedule.
• In serial schedules, only one transaction is allowed to execute at a
time i.e. no concurrency is allowed.
• Whereas in serializable schedules, multiple transactions can execute
simultaneously i.e. concurrency is allowed.
• Types (forms) of serializability
1. Conflict serializability
2. View serializability
Unit 6 :Transaction & Recovery Management
Conflicting instructions
• Let li and lj be two instructions of transactions Ti and Tj respectively.
1. li = read(Q), lj = read(Q) T1 T2 T1 T2
li and lj don’t conflict read (Q) read (Q)
read (Q) read (Q)
2. li = read(Q), lj = write(Q)
li and lj conflict
T1 T2 T1 T2
read (Q) write(Q)
write(Q) read (Q)
3. li = write(Q), lj = read(Q)
li and lj conflict T1 T2 T1 T2
write(Q) read (Q)
4. li = write(Q), lj = write(Q) read (Q) write(Q)
li and lj conflict
T1 T2 T1 T2
write(Q) write(Q)
write(Q) write(Q)
Unit 6 :Transaction & Recovery Management
Conflicting instructions
• Instructions li and lj conflict if and only if there exists some item Q
accessed by both li and lj, and at least one of these instructions
wrote Q.
• If both the transactions access different data item then they are not
conflict.
In this schedule,
Read (A)
Read (B) Temp = A * 0.1
B = B + 50 A = A - temp
Write (B) Write (A)
Commit Read (B) Read (B)
B = B + temp B = B + temp
Write (B) Write (B)
Commit Commit
Unit 6 :Transaction & Recovery Management
Conflict serializability
• Example of a schedule that is not conflict serializable:
T1 T2
Read (A)
Write (A)
Read (A)
View serializability
If a given schedule is found to be view equivalent to some serial schedule,
then it is called as a view serializable schedule.
View equivalent
• Let S1 and S2 be two schedules with the same set of transactions. S1
and S2 are view equivalent if the following three conditions are
satisfied, for each data item Q
1. Initial Read
2. Updated Read
3. Final Write
Unit 6 :Transaction & Recovery Management
Initial Read
• If in schedule S1, transaction Ti reads the initial value of Q, then in
schedule S2 also transaction Ti must read the initial value of Q.
S1 S3 S2
T1 T2 T1 T2 T1 T2
Read (A) Read (A) Write (A)
Write (A) Write (A) Read (A)
• Above two schedules S1 and S3 are not view equivalent because initial read
operation in S1 is done by T1 and in S3 it is done by T2.
• Above two schedules S1 and S2 are view equivalent because initial read operation in
S1 is done by T1 and in S2 it is also done by T1.
Thumb Rule
“Initial readers must be same for all the data items”.
Unit 6 :Transaction & Recovery Management
Updated Read
• If in schedule S1 transaction Ti executes read(Q), and that value was
produced by transaction Tj (if any), then in schedule S2 also transaction
Ti must read the value of Q that was produced by transaction Tj.
S1 S3
T1 T2 T3 T1 T2 T3
Write (A) Write (A)
Write (A) Write (A)
Read (A) Read (A)
• Above two schedules are not view equal because, in S1, T3 is reading A
that is updated by T2 and in S3, T3 is reading A which is updated by T1.
Unit 6 :Transaction & Recovery Management
Updated Read
• If in schedule S1 transaction Ti executes read(Q), and that value was produced
by transaction Tj (if any), then in schedule S2 also transaction Ti must read the
value of Q that was produced by the same write(Q) operation of transaction T j.
S1 S2
T1 T2 T3 T1 T2 T3
Read (A) Read (A)
Write (A) Write (A)
Write (A) Read (A)
Read (A) Write (A)
• Above two schedules are view equal because, in S1, T3 is reading A that is
updated by T2 and in S3 also, T3 is reading A which is updated by T2.
Thumb Rule
“Write-read sequence must be same.”.
Unit 6 :Transaction & Recovery Management
Final Write
• If Ti performs the final write on the data value in S1, then it also performs the
final write on the data value in S2.
S1 S2
T1 T2 T3 T1 T2 T3
Write (A) Read (A)
Read (A) Write (A)
Write (A) Write (A)
• Above two schedules is view equal because final write operation in S1 is done by
T3 and in S2 also the final write operation is also done by T3.
Thumb Rule
“Final writers must be same for all the data items”.
Unit 6 :Transaction & Recovery Management
•If the given schedule is conflict serializable, then it is surely view serializable. Stop
and report your answer.
•If the given schedule is not conflict serializable, then it may or may not be view
serializable. Go and check using other methods.
Thumb Rules
•All conflict serializable schedules are view serializable.
•All view serializable schedules may or may not be conflict serializable.
Unit 6 :Transaction & Recovery Management
• If there does not exist any blind write, then the schedule is surely not view
serializable. Stop and report your answer.
• If there exists any blind write, then the schedule may or may not be view
serializable. Go and check using other methods.
Thumb Rule
No blind write means not a view serializable schedule.
Unit 6 :Transaction & Recovery Management
Method-03:
• In this method, try finding a view equivalent serial schedule.
Check whether the given schedule S is view serializable or not. If yes, then give the
serial schedule.
S : R1(A) , W2(A) , R3(A) , W1(A) , W3(A)
For simplicity and better understanding, we can represent the given schedule
pictorially as-
Unit 6 :Transaction & Recovery Management
Now,
•Since, the given schedule S is not conflict serializable, so, it may or may not be view serializable.
•To check whether S is view serializable or not, let us use another method.
•Let us check for blind writes.
Unit 6 :Transaction & Recovery Management
Reque
st to prep
are
Prepare
Phase Prepared
Comm
it /Abort
Commit
Phase Done
Coordinator
Coordinator
Participant
Send toinform
send
“ack” send to do
reply
inform
commit
request asking
whether ready for
commit readyor
todone
to commit
commit
not or not
Unit 6 :Transaction & Recovery Management
What is concurrency?
• Concurrency is the ability of a database to allow multiple (more than
one) users to access data at the same time.
• Three problems due to concurrency
1. Lost update problem
2. Dirty read problem
3. Incorrect retrieval problem
Unit 6 :Transaction & Recovery Management
What is lock?
• A lock is a variable associated with data item to control concurrent
access to that data item.
Locking is a strategy that is used to
prevent such concurrent access of data.
Lock variable
0
1
Database
Unit 6 :Transaction & Recovery Management
Transaction
T begin T end Time
Unit 6 :Transaction & Recovery Management
What is deadlock?
• Consider the following two transactions:
T1 T2
Granted for (A) Lock-X (A)
Write (A)
Lock-X (B) Granted for (B)
Write (B)
Lock-X (A) Waiting for (A)
Write (A)
• A deadlock is a situation in which two or more transactions are waiting for one another to
give up locks.
Unit 6 :Transaction & Recovery Management
Deadlock detection
• A simple way to detect deadlock is with the help of wait-for graph.
• One node is created in the wait-for graph for each transaction that is
currently executing.
• Whenever a transaction Ti is waiting to lock an item X that is currently
locked by a transaction Tj, a directed edge from Ti to Tj (Ti→Tj) is created
in the wait-for graph.
• When Tj releases the lock(s) on the items that Ti was waiting for, the
directed edge is dropped from the wait-for graph.
• We have a state of deadlock if and only if the wait-for graph has a cycle.
• Then each transaction involved in the cycle is said to be deadlocked.
Unit 6 :Transaction & Recovery Management
Deadlock detection
B D
• Transaction A is waiting for transactions B and C.
• Transactions C is waiting for transaction B.
A • Transaction B is waiting for transaction D.
• This wait-for graph has no cycle, so there is no
deadlock state.
C
• Suppose now that transaction D is requesting an
item held by C. Then the edge D C is added
to the wait-for graph.
Unit 6 :Transaction & Recovery Management
Deadlock detection
• Now this graph contains the cycle.
•B D C B
B D
• It means that transactions B, D and C are all
deadlocked.
A
CK
LO
AD
DE
C
Unit 6 :Transaction & Recovery Management
Deadlock recovery
• When a deadlock is detected, the system must recover from the
deadlock.
• The most common solution is to roll back one or more transactions
to break the deadlock.
• Choosing which transaction to abort is known as Victim Selection.
Unit 6 :Transaction & Recovery Management
CK
transactions must be roll backed.
LO
AD • We should rollback those transactions that will
DE
C incur the minimum cost.
• When a deadlock is detected, the choice of
which transaction to abort can be made using
following criteria:
The transaction which have the fewest locks
The transaction that has done the least work
The transaction that is farthest from completion
Unit 6 :Transaction & Recovery Management
Deadlock prevention
• A protocols ensure that the system will never enter into a deadlock
state.
• Some prevention strategies :
• Require that each transaction locks all its data items before it begins
execution (predeclaration).
• Impose partial ordering of all data items and require that a transaction can
lock data items only in the order specified by the partial.
Unit 6 :Transaction & Recovery Management
Deadlock prevention
• Following schemes use transaction timestamps for the sake of
deadlock prevention alone.
1. Wait-die scheme — non-preemptive
• If an older transaction is requesting a resource which is held by younger
transaction, then older transaction is allowed to wait for it till it is available.
• If an younger transaction is requesting a resource which is held by older
transaction, then younger transaction is killed.
Wait-Die
O needs a resource held by Y O waits
Y needs a resource held by O Y dies
Unit 6 :Transaction & Recovery Management
Deadlock prevention
• Following schemes use transaction timestamps for the sake of
deadlock prevention alone.
2. Wound-wait scheme — preemptive
• If an older transaction is requesting a resource which is held by younger
transaction, then older transaction forces younger transaction to kill the
transaction and release the resource.
• If an younger transaction is requesting a resource which is held by older
transaction, then younger transaction is allowed to wait till older transaction
will releases it.
Wound-Wait
O needs a resource held by Y Y dies
Y needs a resource held by O Y waits
Unit 6 :Transaction & Recovery Management
Deadlock prevention
• Following schemes use transaction timestamps for the sake of
deadlock prevention alone.
3. Timeout-Based Schemes :
• A transaction waits for a lock only for a specified amount of time. After that,
the wait times out and the transaction is rolled back. So deadlocks never
occur.
• Simple to implement; but difficult to determine good value of the timeout
interval.
Unit 6 :Transaction & Recovery Management
Database recovery
• There are many situations in which a transaction may not reach a
commit or abort point.
• Operating system crash
• DBMS crash
• System might lose power (power failure)
• Disk may fail or other hardware may fail (disk/hardware failure)
• Human error
• In any of above situations, data in the database may become
inconsistent or lost.
Unit 6 :Transaction & Recovery Management
Database recovery
• For example, if a transaction has completed 30 out of 40 write
instructions to the database when the DBMS crashes, then the
database may be in an inconsistent state as only part of the
transaction’s work was completed.
• Database recovery is the process of restoring the database and the
data to a consistent state.
• This may include restoring lost data up to the point of the event (e.g.
system crash).
Unit 6 :Transaction & Recovery Management
Checkpoint
• It is a point which specifies that any operations executed before it
are done correctly and stored safely (updated safely in database).
• At this point, all the buffers are force-fully written to the secondary
storage (database).
• Checkpoints are scheduled at predetermined time intervals.
• It is used to limit:
• Size of transaction log file
• Amount of searching
Unit 6 :Transaction & Recovery Management
T1
T2
T3
T4
• At failure time:
• Ignore the transaction T1 as it has already been committed before checkpoint.
• Redo transaction T2 and T3 as they are active after checkpoint and are committed before failure.
• Undo transaction T4 as it is active after checkpoint and has not committed.
Unit 6 :Transaction & Recovery Management
Pages on disk
Unit 6 :Transaction & Recovery Management
• The shadow page table continues to point to old pages which are not changed
by the transaction. So, this table and pages are used for undoing the
transaction.
Unit 6 :Transaction & Recovery Management
Thanks..!
96