Unit VI Transaction Processing, Concurrency Control and Recovery Techniques
Unit VI Transaction Processing, Concurrency Control and Recovery Techniques
ACID Properties
Transaction States
Implementation of Atomicity and
Durability
Serializability
Basic Concept of Concurrency Control and
Recovery
Locking Protocols
Time Stamp Based Protocol
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:
Failures of various kinds, such as hardware failures
and system crashes
Concurrent execution of multiple transactions
Transaction : A collection of actions that
transforms the DB from one consistent state
into another state; during the execution the
DB might be inconsistent.
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.
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.
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
Committed, after successful completion.
Transaction State (Cont.)
Implementation of Atomicity and Durability
transaction transaction
with smaller with larger
timestamp timestamp
lock-X on X
write (X)
lock-X on Y
write (X)
wait for lock-X on X
wait for lock-X on Y
Deadlock Handling
Failure Classifications
Transaction Failures
Logical Errors
System Errors
System Crash
Disk Failure
Recovery Concepts
Log Based Recovery
In log based recovery system, a log is maintained, in
which all the modifications of the database are kept.
A log consists of Log Records.
A typical Log record must contain following fields:
Transaction Identifier
Data-item Identifier
Date and time
Old value
New value
Log must be written on the non-volatile (stable)
storage.
In log based recovery, the following two operation for
recovery are required.
Redo – it means, the work of the transactions that
completed successfully before crash is to be
performed again.
Undo – It means, all the work done by the
transactions that did not completed due to crash is
to be undone.
[Ti, start]
[Ti, Aj ]
[Ti, Aj, v1 ,v2]
[Ti, Commit]
[Ti, Aborts]
Caching (Buffering) of Disk Blocks
Write – Ahead Logging
Check Pointing