Professional Documents
Culture Documents
Properties
Database System Concepts - 6th Edition 14.2 ©Silberschatz, Korth and Sudarshan
Transaction Concept
A transaction is a unit of program execution that accesses and
possibly updates various data items.
E.g. transaction to transfer $50 from account A to account B:
1. read(A)
2. A := A – 50
3. write(A)
4. read(B)
5. B := B + 50
6. write(B)
Two main issues to deal with:
Failures of various kinds, such as hardware failures and
system crashes
Concurrent execution of multiple transactions
Database System Concepts - 6th Edition 14.3 ©Silberschatz, Korth and Sudarshan
Transaction Operations
Database System Concepts - 6th Edition 14.4 ©Silberschatz, Korth and Sudarshan
Example of Fund Transfer
Transaction to transfer $50 from account A to account B:
1. read(A)
2. A := A – 50
3. write(A)
4. read(B)
5. B := B + 50
6. write(B)
Atomicity requirement
if the transaction fails after step 3 and before step 6, money will be
“lost” leading to an inconsistent database state
Failure could be due to software or hardware
the system should ensure that updates of a partially executed
transaction are not reflected in the database
Durability requirement — once the user has been notified that the transaction
has completed (i.e., the transfer of the $50 has taken place), the updates to
the database by the transaction must persist even if there are software or
hardware failures.
Database System Concepts - 6th Edition 14.5 ©Silberschatz, Korth and Sudarshan
Example of Fund Transfer (Cont.)
Consistency requirement in above example:
the sum of A and B is unchanged by the execution of the transaction
In general, consistency requirements include
Explicitly specified integrity constraints such as primary keys and
foreign keys
Implicit integrity constraints
– e.g. sum of balances of all accounts, minus sum of loan amounts
must equal value of cash-in-hand
A transaction must see a consistent database.
During transaction execution the database may be temporarily inconsistent.
When the transaction completes successfully the database must be
consistent
Erroneous transaction logic can lead to inconsistency
Database System Concepts - 6th Edition 14.6 ©Silberschatz, Korth and Sudarshan
Example of Fund Transfer (Cont.)
Isolation requirement — if between steps 3 and 6, another
transaction T2 is allowed to access the partially updated database, it
will see an inconsistent database (the sum A + B will be less than it
should be).
T1 T2
1. read(A)
2. A := A – 50
3. write(A)
read(A), read(B), print(A+B)
4. read(B)
5. B := B + 50
6. write(B
Isolation can be ensured trivially by running transactions serially
that is, one after the other.
However, executing multiple transactions concurrently has
significant benefits, as we will see later.
Database System Concepts - 6th Edition 14.7 ©Silberschatz, Korth and Sudarshan
Example of Data Access
buffer
Buffer Block A input(A)
X A
Buffer Block B Y B
output(B)
read(X)
write(Y)
x2
x1
y1
memory disk
Database System Concepts - 6th Edition 14.8 ©Silberschatz, Korth and Sudarshan
ACID Properties
A transaction is a unit of program execution that accesses and possibly
updates various data items.To preserve the integrity of data the database
system must ensure:
Atomicity. Either all operations of the transaction are properly reflected
in the database or none are.
Consistency. Execution of a transaction in isolation preserves the
consistency of the database.
Isolation. Although multiple transactions may execute concurrently,
each transaction must be unaware of other concurrently executing
transactions. Intermediate transaction results must be hidden from
other concurrently executed transactions.
That is, for every pair of transactions Ti and Tj, it appears to Ti that
either Tj, finished execution before Ti started, or Tj started execution
after Ti finished.
Durability. After a transaction completes successfully, the changes it
has made to the database persist, even if there are system failures.
Database System Concepts - 6th Edition 14.9 ©Silberschatz, Korth and Sudarshan
Transaction State
Active – the initial state; the transaction stays in this state while it is
executing
Partially committed – after the final statement has been executed.
Failed -- after the discovery that normal execution can no longer
proceed.
Aborted – after the transaction has been rolled back and the
database restored to its state prior to the start of the transaction.
Two options after it has been aborted:
restart the transaction
can be done only if no internal logical error
Database System Concepts - 6th Edition 14.10 ©Silberschatz, Korth and Sudarshan
Transaction State (Cont.)
❑ A transaction goes through many different states throughout its life cycle.
❑ These states are called as transaction states.
partially
committed Permanent committed
R/W Store
operations
terminated
Failure state
active
Failure
failed aborted
Roll back
Database System Concepts - 6th Edition 14.11 ©Silberschatz, Korth and Sudarshan
Transaction State
Active
❑ This is the first state in the life cycle of a transaction.
❑ A transaction is called in an active state as long as its
instructions are getting executed.
❑ All the changes made by the transaction now are stored in the
buffer in main memory.
Partially committed –
❑ After the last instruction of transaction has executed, it enters
into a partially committed state.
❑ After entering this state, the transaction is considered to be
partially committed.
❑ It is not considered fully committed because all the changes
made by the transaction are still stored in the buffer in main
memory.
Database System Concepts - 6th Edition 14.12 ©Silberschatz, Korth and Sudarshan
Transaction State
Committed State –
❑ After all the changes made by the transaction have been
successfully stored into the database, it enters into a committed
state.
❑ Now, the transaction is considered to be fully committed.
❑ After a transaction has entered the committed state, it is not
possible to roll back the transaction.
❑ In other words, it is not possible to undo the changes that has
been made by the transaction.
❑ This is because the system is updated into a new consistent state.
❑ The only way to undo the changes is by carrying out another
transaction called as compensating transaction that performs the
reverse operations.
Database System Concepts - 6th Edition 14.13 ©Silberschatz, Korth and Sudarshan
Transaction State
Failed State
❑ When a transaction is getting executed in the active state or
partially committed state and some failure occurs due to which it
becomes impossible to continue the execution, it enters into a failed
state.
Aborted State
❑ After the transaction has failed and entered into a failed
state, all the changes made by it have to be undone.
❑ To undo the changes made by the transaction, it becomes
necessary to roll back the transaction.
❑ After the transaction has rolled back completely, it enters
into an aborted state.
Terminated State
❑ This is the last state in the life cycle of a transaction.
❑ After entering the committed state or aborted state, the
transaction finally enters into a terminated state where its
life cycle finally comes to an end.
Database System Concepts - 6th Edition 14.14 ©Silberschatz, Korth and Sudarshan
Thank You
Database System Concepts - 6th Edition 14.2 ©Silberschatz, Korth and Sudarshan
Concurrent Executions
Multiple transactions are allowed to run concurrently in the system.
Advantages are:
increased processor and disk utilization, leading to better
transaction throughput
E.g. one transaction can be using the CPU while another is
reading from or writing to the disk
reduced average response time for transactions: short
transactions need not wait behind long ones.
Concurrency control schemes – mechanisms to achieve isolation
That is, to control the interaction among the concurrent
transactions in order to prevent them from destroying the
consistency of the database
Database System Concepts - 6th Edition 14.3 ©Silberschatz, Korth and Sudarshan
Schedules
Schedule – a sequences of instructions that specify the chronological
order in which instructions of concurrent transactions are executed
a schedule for a set of transactions must consist of all instructions
of those transactions
must preserve the order in which the instructions appear in each
individual transaction.
A transaction that successfully completes its execution will have a
commit instructions as the last statement
by default transaction assumed to execute commit instruction as its
last step
A transaction that fails to successfully complete its execution will have
an abort instruction as the last statement
Database System Concepts - 6th Edition 14.4 ©Silberschatz, Korth and Sudarshan
Types of Schedules
Schedules in DBMS
Serializable Non-Serializable
Database System Concepts - 6th Edition 14.5 ©Silberschatz, Korth and Sudarshan
Serial Schedules
In serial schedules,
❑ All the transactions execute serially one after the other.
When one transaction executes, no other transaction is allowed
to execute.
Characteristics
Serial schedules are always-
❑ Consistent
❑ Recoverable
❑ Cascadeless
❑ Strict
Database System Concepts - 6th Edition 14.6 ©Silberschatz, Korth and Sudarshan
Serial Schedules- Example
Transaction T1 Transaction T2
R(A)
W(A)
R(B)
W(B)
Commit
R(A)
W(B)
Commit
• There are two transactions T1 and T2 executing serially one after the other.
• Transaction T1 executes first.
• After T1 completes its execution, transaction T2 executes.
• So, this schedule is an example of a Serial Schedule.
Database System Concepts - 6th Edition 14.7 ©Silberschatz, Korth and Sudarshan
Serial Schedules- Example
Transaction T1 Transaction T2
R(A)
W(B)
Commit
R(A)
W(A)
R(B)
W(B)
Commit
Database System Concepts - 6th Edition 14.8 ©Silberschatz, Korth and Sudarshan
Schedule 1
Let T1 transfer $50 from A to B, and T2 transfer 10% of the
balance from A to B.
A serial schedule in which T1 is followed by T2 :
Database System Concepts - 6th Edition 14.9 ©Silberschatz, Korth and Sudarshan
Schedule 2
• A serial schedule where T2 is followed by T1
Database System Concepts - 6th Edition 14.10 ©Silberschatz, Korth and Sudarshan
Non- Serial Schedules
In non-serial schedules,
❑ Multiple transactions execute concurrently.
❑ Operations of all the transactions are inter leaved or mixed
with each other.
Characteristics
Non-serial schedules are NOT always
❑ Consistent
❑ Recoverable
❑ Cascadeless
❑ Strict
Database System Concepts - 6th Edition 14.11 ©Silberschatz, Korth and Sudarshan
Non- serial Schedules- Example
Transaction T1 Transaction T2
R(A)
W(B)
R(A)
R(B)
W(B)
Commit
W(B)
Commit
Transaction T1 Transaction T2
R(A)
R(A)
W(B)
W(B)
Commit
R(B)
W(B)
Commit
Database System Concepts - 6th Edition 14.13 ©Silberschatz, Korth and Sudarshan
Schedule 3
Let T1 and T2 be the transactions defined previously. The
following schedule is not a serial schedule, but it is
equivalent to Schedule 1.
Database System Concepts - 6th Edition 14.14 ©Silberschatz, Korth and Sudarshan
Schedule 4
The following concurrent schedule does not preserve the
value of (A + B ).
Database System Concepts - 6th Edition 14.15 ©Silberschatz, Korth and Sudarshan
Finding Number Of Schedules
Consider there are n number of transactions T1, T2, T3 …. , Tn with N1,
N2, N3 …. , Nn number of operations respectively.
Total Number of Schedules
Total number of possible schedules (serial + non-serial) is given by
( N1 + N2 + N3 + … + Nn)!
N1! x N2! x N3! x … x Nn!
Total Number of Serial Schedules-
Total number of serial schedules
= Number of different ways of arranging n transactions
= n!
Total Number of Non-Serial Schedules-
Total number of non-serial schedules
= Total number of schedules – Total number of serial schedules
Database System Concepts - 6th Edition 14.16 ©Silberschatz, Korth and Sudarshan
Finding Number Of Schedules - Example
Consider there are three transactions with 2, 3, 4 operations respectively,
Total Number of Schedules
( 2+3+4)!
Total number of schedules =
2! x 3! x 4!
= 1260
Total Number of Serial Schedules
= Number of different ways of arranging 3 transactions
= 3!
=6
Total Number of Non-Serial Schedules
= Total number of schedules – Total number of serial schedules
= 1260 – 6
= 1254
Database System Concepts - 6th Edition 14.17 ©Silberschatz, Korth and Sudarshan
Serializability
Basic Assumption – Each transaction preserves database
consistency.
Thus serial execution of a set of transactions preserves
database consistency.
A (possibly concurrent) schedule is serializable if it is
equivalent to a serial schedule. Different forms of schedule
equivalence give rise to the notions of:
1. conflict serializability
2. view serializability
Database System Concepts - 6th Edition 14.18 ©Silberschatz, Korth and Sudarshan
Simplified view of transactions
Database System Concepts - 6th Edition 14.19 ©Silberschatz, Korth and Sudarshan
Conflicting Instructions
Instructions li and lj of transactions Ti and Tj respectively, 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.
1. li = read(Q), lj = read(Q). li and lj don’t conflict.
2. li = read(Q), lj = write(Q). They conflict.
3. li = write(Q), lj = read(Q). They conflict
4. li = write(Q), lj = write(Q). They conflict
Intuitively, a conflict between li and lj forces a (logical) temporal
order between them.
If li and lj are consecutive in a schedule and they do not
conflict, their results would remain the same even if they had
been interchanged in the schedule.
Database System Concepts - 6th Edition 14.20 ©Silberschatz, Korth and Sudarshan
Conflict Serializability
If a schedule S can be transformed into a schedule S´ by a series of
swaps of non-conflicting instructions, we say that S and S´ are
conflict equivalent.
We say that a schedule S is conflict serializable if it is conflict
equivalent to a serial schedule
Database System Concepts - 6th Edition 14.21 ©Silberschatz, Korth and Sudarshan
Conflict Serializability (Cont.)
Schedule 3 can be transformed into Schedule 6, a serial
schedule where T2 follows T1, by series of swaps of non-
conflicting instructions. Therefore Schedule 3 is conflict
serializable.
Schedule 3 Schedule 6
Database System Concepts - 6th Edition 14.22 ©Silberschatz, Korth and Sudarshan
Anomalies with Interleaved Execution
Database System Concepts - 6th Edition 14.23 ©Silberschatz, Korth and Sudarshan
Anomalies with Interleaved Execution
Database System Concepts - 6th Edition 14.24 ©Silberschatz, Korth and Sudarshan
Anomalies (Continued)
Overwriting Uncommitted Data (WW Conflicts):
Database System Concepts - 6th Edition 14.25 ©Silberschatz, Korth and Sudarshan
Precedence graph for schedule 1 and
schedule 2.
Simple and efficient method for determining conflict serializability of a
schedule.
Consider a schedule S. We construct a directed graph, called a
precedence graph, from S.
This graph consists of a pair G = (V, E), where V is a set of vertices
and E is a set of edges.
The set of edges consists of all edges Ti → T j for which one of three
conditions holds:
1. Ti executes write(Q) before T j executes read(Q).
2. Ti executes read(Q) before T j executes write(Q).
3. Ti executes write(Q) before T j executes write(Q).
Database System Concepts - 6th Edition 14.29 ©Silberschatz, Korth and Sudarshan
CONFLICT SERIALIZABILITY - PROBLEM
Check whether the given schedule S is conflict serializable or not-
S : R1(A) , R2(A) , R1(B) , R2(B) , R3(B) , W1(A) , W2(B)
Step 1:
Step-02:
Draw the precedence graph
• Clearly, there exists a cycle in
T1 T2 the precedence graph.
• Therefore, the given schedule S
is not conflict serializable.
T3
Database System Concepts - 6th Edition 14.30 ©Silberschatz, Korth and Sudarshan
CONFLICT SERIALIZABILITY - PROBLEM
Check whether the given schedule S is conflict serializable and recoverable or
not
Database System Concepts - 6th Edition 14.31 ©Silberschatz, Korth and Sudarshan
CONFLICT SERIALIZABILITY - PROBLEM
Step 1:
Step-02:
Draw the precedence graph
Database System Concepts - 6th Edition 14.32 ©Silberschatz, Korth and Sudarshan
View Serializability
Consider two schedules S and S′, where the same set of
transactions participates in both schedules. The schedules S and S′
are said to be view equivalent if three conditions are met:
➢ For each data item Q, if transaction Ti reads the initial
value of Q in schedule S, then transaction Ti must, in
schedule S′, also read the initial value of Q.
➢ For each data item Q, if transaction Ti executes read(Q) in
schedule S, and if that value was produced by a write(Q)
operation executed by transaction T j , then the read(Q)
operation of transaction Ti must, in schedule S′, also read
the value of Q that was produced by the same write(Q)
operation of transaction T j .
➢ For each data item Q, the transaction (if any) that performs
the final write(Q) operation in schedule S must perform the
final write(Q) operation in schedule S′.
Database System Concepts - 6th Edition 14.33 ©Silberschatz, Korth and Sudarshan
View Serializability (Cont.)
Schedule 5 is view equivalent to the serial schedule <T27, T28, T29>, since
the one read(Q) instruction reads the initial value of Q in both schedules and
T29 performs the final write of Q in both schedules.
Every conflict-serializable schedule is also view serializable, but there are
view-serializable schedules that are not conflict serializable.
In schedule 5, transactions T28 and T29 perform write(Q) operations
without having performed a read(Q) operation.
Writes of this sort are called blind writes.
Blind writes appear in any view-serializable schedule that is not conflict
serializable.
Schedule 4 Schedule 5
Database System Concepts - 6th Edition 14.34 ©Silberschatz, Korth and Sudarshan
View Serializability - Problem
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)
Database System Concepts - 6th Edition 14.35 ©Silberschatz, Korth and Sudarshan
VIEW SERIALIZABILITY - PROBLEM
Step-01:
List all the conflicting operations and determine the dependency between
the transactions-
• R1(A) , W2(A) (T1 → T2)
• R1(A) , W3(A) (T1 → T3)
• W2(A) , R3(A) (T2 → T3)
• W2(A) , W1(A) (T2 → T1)
• W2(A) , W3(A) (T2 → T3)
• R3(A) , W1(A) (T3 → T1)
• W1(A) , W3(A) (T1 → T3)
Step-02:
Draw the precedence graph
Database System Concepts - 6th Edition 14.36 ©Silberschatz, Korth and Sudarshan
VIEW SERIALIZABILITY - PROBLEM
Checking for Blind Writes
•There exists a blind write W2 (A) in the given schedule S.
•Therefore, the given schedule S may or may not be view serializable.
Database System Concepts - 6th Edition 14.37 ©Silberschatz, Korth and Sudarshan
Transaction Isolation and Atomicity
Lets see the effect of transaction failures during concurrent
execution.
If a transaction Ti fails, for whatever reason, we need to undo the
effect of this transaction to ensure the atomicity property of the
transaction.
In a system that allows concurrent execution, the atomicity
property requires that any transaction Tj that is dependent on Ti
is also aborted.
To achieve this, we need to place restrictions on the type of
schedules permitted in the system.
➢ Non-recoverable Schedules
➢ Recoverable Schedules
➢ Cascading Rollback
➢ Cascadeless Schedules
Database System Concepts - 6th Edition 14.38 ©Silberschatz, Korth and Sudarshan
Nonrecoverable Schedules
Consider the partial schedule in which T7 is a transaction that performs
only one instruction: read(A).
We call this a partial schedule because we have not included a commit or
abort operation for T6.
Notice that T7 commits immediately after executing the read(A)
instruction. Thus, T7 commits while T6 is still in the active state.
Now suppose that T6 fails before it commits. T7 has read the value of data
item A written by T6 . Therefore, we say that T7 is dependent on T6.
Because of this, we must abort T7 to ensure atomicity. However, T7 has
already committed and cannot be aborted. Thus, we have a situation
where it is impossible to recover correctly from the failure of T6.
This Schedule is an example of a nonrecoverable schedule.
Database System Concepts - 6th Edition 14.39 ©Silberschatz, Korth and Sudarshan
Recoverable Schedules
A recoverable schedule is one where, for each pair of transactions Ti and
Tj such that Tj reads a data item previously written by Ti , the commit
operation of Ti appears before the commit operation of Tj .
For the example of the previous schedule is said to be recoverable, T7
would have to delay committing until after T6 commits.
Database System Concepts - 6th Edition 14.40 ©Silberschatz, Korth and Sudarshan
Cascading Rollback
A situation in which the abort of one transaction forces the abort of another
transaction to prevent the second transaction from reading invalid data.
Also called "cascading rollback".
If in a schedule, failure of one transaction causes several other dependent
transactions to rollback or abort, then such a schedule is called as a
Cascading Schedule or Cascading Rollback or Cascading Abort.
Database System Concepts - 6th Edition 14.41 ©Silberschatz, Korth and Sudarshan
Cascadeless Schedules
It is desirable to restrict the schedules to those where cascading rollbacks
cannot occur. Such schedules are called cascadeless schedules.
Formally, a cascadeless schedule is one where, for each pair of
transactions Ti and Tj such that Tj reads a data item previously written by
Ti , the commit operation of Ti appears before the read operation of Tj .
It is easy to verify that every cascadeless schedule is also recoverable.
Database System Concepts - 6th Edition 14.42 ©Silberschatz, Korth and Sudarshan
Strict Schedule
If in a schedule, a transaction is neither allowed to read nor write a data
item until the last transaction that has written it is committed or aborted,
then such a schedule is called as a Strict Schedule.
Example-
Database System Concepts - 6th Edition 14.43 ©Silberschatz, Korth and Sudarshan
THANK YOU
Database System Concepts - 6th Edition 14.28 ©Silberschatz, Korth and Sudarshan
Concurrency Control
Content
• Concurrency Control
This problem occurs when a transaction reads some variable from the buffer
and when it reads the same variable later, it finds that the variable does not
exist.
Here,
1.T1 reads X.
2.T2 reads X.
3.T1 deletes X.
4.T2 tries reading X but does not find it.
In this example,
• T2 finds that there does not exist any variable X when it tries reading X
again.
• T2 wonders who deleted the variable X because according to it, it is
running in isolation.
Avoiding Concurrency Problems
• Read Phase:
• Data items are read and stored in local copies.
• Operations are performed on these copies without
updating the database.
Validation Phase:
✓ Lock-Based Protocols
✓ Timestamp-Based Protocols
✓ Validation-Based Protocols
✓ Multiple Granularity
✓ Multi version Schemes
✓ Insert and Delete Operations
✓ Concurrency in Index Structures
Concurrency Control
• Rigorous two-phase locking is even stricter: here all locks are held till
commit/abort. In this protocol transactions can be serialized in the
order in which they commit.
The Two-Phase Locking Protocol
Lock Conversions
Consider the following two transactions, for which we have shown only
some of the significant read and write operations:
T8 : read(a1 );
read(a2 );
...
read(a n);
write(a1 )
T9 : read(a1 );
read(a2 );
display(a1 + a2 )
Lock Conversions
• Deadlock prevention
• Deadlock detection
• Deadlock recovery
Deadlock Handling
Deadlock Prevention
Wait-Die scheme:
• In this scheme, if a transaction requests for a resource which is already
held with a conflicting lock by another transaction then the DBMS
simply checks the timestamp of both transactions.
• It allows the older transaction to wait until the resource is available for
execution.
• Let's assume there are two transactions Ti and Tj and let TS(T) is a
timestamp of any transaction T. If T2 holds a lock by some other
transaction and T1 is requesting for resources held by T2 then the
following actions are performed by DBMS:
Deadlock Prevention
• Check if TS(Ti) < TS(Tj) - If Ti is the older transaction and Tj has held
some resource, then Ti is allowed to wait until the data-item is
available for execution.
• Check if TS(Ti) < TS(Tj) - If Ti is older transaction and has held some
resource and if Tj is waiting for it, then Tj is killed and restarted later
with the random delay but with the same timestamp.
Deadlock Prevention
• After the minute delay, the younger transaction is restarted but with
the same timestamp.
The timestamp ordering protocol ensures that any conflicting read and
write operations are executed in timestamp order.
Suppose a transaction Ti issues a read(Q)
• If TS(Ti) W-timestamp(Q), then Ti needs to read a value of Q that
was already overwritten.
Hence, the read operation is rejected, and Ti is rolled back.
A partial schedule for several data items for transactions with timestamps 1, 2,
3, 4, 5
Correctness of Timestamp-Ordering Protocol
Solution 1:
• A transaction is structured such that its writes are all performed at the
end of its processing.
• All writes of a transaction form an atomic action; no transaction may
execute while a transaction is being written.
• A transaction that aborts is restarted with a new timestamp.
Solution 2:
• Limited form of locking: wait for data to be committed before
reading it.
Solution 3:
• Use commit dependencies to ensure recoverability.
Validation-Based Protocols
• Assume for simplicity that the validation and write phase occur
together, atomically and serially.
• Transaction Recovery
• Crash Recovery
• Failure Classification
• Transaction failure
• Save Points
• Isolation Levels
• Transaction failure
• System crash
• Disk failure
Failure Classification
• Logical errors
• System errors
Failure Classification
• System crash: There are issues − external to the system − that will
cause the system to prevent abruptly and cause the system to crash.
For instance, interruptions in power supply might cause the failure of
underlying hardware or software package failure.
-- SAVEPOINT SAVEPOINT_NAME;
Isolation Levels
• Dirty Reads
• Non-Repeatable Reads
• Phantom Read
SQL Facilities
Checkpoint
• The recovery system reads the logs backwards from the end to the
last checkpoint.
• If the recovery system sees a log with <Tn, Start> and <Tn,
Commit> or just <Tn, Commit>, it puts the transaction in the redo-
list.
• If the recovery system sees a log with <Tn, Start> but no commit or
abort log found, it puts the transaction in undo-list.
THANK YOU