Transactions: Dr. M. Brindha Assistant Professor Department of CSE NIT, Trichy-15
Transactions: Dr. M. Brindha Assistant Professor Department of CSE NIT, Trichy-15
Dr. M. Brindha
Assistant Professor
Department of CSE
NIT, Trichy-15
Transaction Concept
• A transaction is a unit of program execution that
accesses and possibly updates various data
items.
• A transaction must see a consistent database.
• During transaction execution the database may
be inconsistent.
• When the transaction is committed, the
database must be consistent.
• Two main issues to deal with:
• Failuresof various kinds, such as hardware failures and
system crashes
• Concurrent execution of multiple transactions
ACID Properties
To preserve 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.
• Thatis, 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.
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)
• Consistency requirement – the sum of A and B is
unchanged by the execution of the transaction.
• Atomicity requirement — if the transaction fails after
step 3 and before step 6, the system should ensure
that its updates are not reflected in the database, else
an inconsistency will result.
Example of Fund Transfer (Cont.)
• 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 despite failures.
• Isolation requirement — if between steps 3 and 6,
another transaction 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).
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.
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 – only if no internal logical error
• kill the transaction
• If
T8 should abort, T9 would have read (and possibly shown
to the user) an inconsistent database state. Hence
database must ensure that schedules are recoverable.
Recoverability (Cont.)
• Cascading rollback – a single transaction failure leads to a
series of transaction rollbacks. Consider the following
schedule where none of the transactions has yet
committed (so the schedule is recoverable)
y
Test for Conflict Serializability
•A schedule is conflict serializable if and only if its
precedence graph is acyclic.
• Cycle-detection algorithms exist which take order n2
time, where n is the number of vertices in the graph.
(Better algorithms take order n + e where e is the
number of edges.)
• If precedence graph is acyclic, the serializability order
can be obtained by a topological sorting of the graph.
This is a linear order consistent with the partial order
of the graph.
Example Schedule
Example Schedule
T2->T3->T1->T4
Thank You!!!