Professional Documents
Culture Documents
Foundations of
Database
Transaction
Processing
Chapter 20 Outline
Introduction to Transaction
Processing
Concurrent execution of transactions
Recovery from transaction failure
Multiuser System:
Many users can access the system concurrently
Concurrency
Interleaved processing:
Concurrent execution of processes is interleaved in a single
CPU
Parallel processing:
Processes are concurrently executed in multiple CPUs
Concurrent execution is
uncontrolled: (b) The temporary
update problem
Wh Recovery
Why R Is
I Needed
N d d
Whenever a transaction is submitted to a DBMS for
execution, the system is responsible for making sure that
either
all the operations in the transaction are completed
successfully and their effect is recorded permanently in the
database, or that
the transaction is said to be committed
the transaction does not have any effect on the database or
any other transactions
the transaction is aborted
If a transaction
t ti fails
f il after
ft executing
ti some off its
it operations
ti
but before executing all of them, the operations already
executed must be undone and have no lasting effect
effect.
T
Transaction
ti and
d System
S t Concepts
C t
The System
y Log
g
C
Commit
it P
Point
i t off a Transaction
T ti
Definition a Commit Point:
A transaction T reaches its commit point when all its
operations that access the database have been executed
successfully and the effect of all the transaction operations
on the database has been recorded in the log
Beyond the commit point
point, the transaction is said to be
committed, and its effect is assumed to be permanently
recorded in the database
The transaction then writes an entry [commit,T]
[commit T] into the log
Roll Back of transactions:
N d d ffor ttransactions
Needed ti th
thatt have
h a [[start_transaction,T]
t t t ti T]
entry into the log but no commit entry [commit,T] into the log
Undo the effect on the database during the recovery
process
Redoing transactions:
Transactions that have written their commit entry in the log
must also have recorded all their write operations in the log;
otherwise they would not be committed, so their effect on
th database
the d t b can b
be redone
d f
from the
th log
l entries.
ti (N
(Notice
ti
that the log file must be kept on disk
It is common to keep one or more blocks of the log file in
main memory buffers, called the log buffer, until they are
filled with log entries and then to write them back to disk
only once, rather than writing to disk every time a log
entry is added.
This saves the overhead of multiple disk writes of the same log file
buffer.
Copyright 2011 Ramez Elmasri and Shamkant Navathe
ACID properties:
Atomicity: A transaction is an atomic unit of processing; it is
either performed in its entirety or not performed at all
Consistency preservation: A correct execution of the transaction
must take the database from one consistent state to another
Isolation: A transaction should appear as though it is being
executed in isolation from other transactions, even though many
transactions are executing concurrently
concurrently. That is
is, the execution of a
transaction should not be interfered with by any other transactions
executing concurrently
Durability or permanency: Once a transaction changes the
database and the changes are committed, these changes must
never be lost because of subsequent failure
The ACID properties should be enforced by the
concurrency control and recovery methods of the DBMS
Copyright 2011 Ramez Elmasri and Shamkant Navathe
Desirable Properties of
T
Transactions
ti (Contd.)
(C td )
The isolation
Th i l i property iis enforced
f dbby the
h concurrency controll
subsystem of the DBMS
If everyy transaction does not make its updates
p ((write operations)
p )
visible to other transactions until it is committed,
One form of isolation is enforced that solves the temporary update
Level
L l 2 iisolation
l ti h has no llostt updates
d t and d no di
dirtyt reads.
d
Level 3 isolation (also called true isolation) has, in addition to level
2p properties,
p , repeatable
p reads
Schedules (Histories) of
Transactions
Serial schedule:
A schedule
h d l S isi serial
i l ifif, ffor every ttransaction
ti T
participating in the schedule, all the operations of T are
executed consecutively in the schedule
Otherwise, the schedule is called nonserial schedule
S i li bl schedule:
Serializable h d l
A schedule S is serializable if it is equivalent to some
serial
i l schedule
h d l off th
the same n ttransactions
ti
Result equivalent:
Two schedules are called result equivalent if they
produce the same final state of the database
Conflict equivalent:
Two schedules are said to be conflict equivalent if the
order of any two conflicting operations is the same in
both schedules
Conflict serializable:
A schedule S is said to be conflict serializable if it is
conflict equivalent to some serial schedule S
S
Characterizing
g Schedules Based
on Serializability (contd.)
Serializability is hard to check
Interleaving of operations occurs in an operating
system through some scheduler
Difficult to determine beforehand how the operations in
a schedule will be interleaved
Practical approach:
Come up p with methods (p(protocols)) to ensure
serializability
Its not possible to determine when a schedule begins
and when it ends
Hence, we reduce the problem of checking the whole
schedule to checkingg only
y a committed p project
j of the
schedule (i.e. operations from only the committed
transactions.)
Current approach used in most DBMSs:
Use of locks with two phase locking
View equivalence:
A less restrictive definition of equivalence of schedules
Vi
View serializability:
i li bili
Definition of serializability based on view equivalence.
A schedule is view serializable if it is view equivalent to
a serial schedule.
In Sa
Sa, the operations w2(X) and w3(X) are blind
writes, since T1 and T3 do not read the value of X
Sa is view serializable
serializable, since it is view equivalent to the
serial schedule T1, T2, T3
However,
o e e , Sa is s not
ot co
conflict
ct se
serializable,
a ab e, ssince
ce itt is
s not
ot
conflict equivalent to any serial schedule
Copyright 2011 Ramez Elmasri and Shamkant Navathe
Testing for Conflict Serializability of
a Schedule
Algorithm 20.1:
Looks at only read_Item
read Item (X) and write_Item
write Item (X)
operations
Constructs a p
precedence g graph
p ((serialization g
graph)
p )-
a graph with directed edges
An edge is created from Ti to Tj if one of the
operations in Ti appears before a conflicting operation
in Tj
The schedule is serializable if and only if the
precedence graph has no cycles.
Transaction Support
pp in SQL
Q (contd.)
( )
Isolation level
Specified using the statement ISOLATION
LEVEL<isolation>, where <isolation> can be READ
UNCOMMITTED, READ COMMITTED, REPEATABLE
READ or SERIALIZABLE
SERIALIZABLE.
The default is SERIALIZABLE (not allowing violations
that cause dirty read
read, unrepeatable read
read, and phantoms)
With SERIALIZABLE: the interleaved execution of
transactions will adhere to our notion of serializability
However, if any transaction executes at a lower level,
then serializability may be violated
P t ti l problem
Potential bl with
ith llower iisolation
l ti llevels:
l
Dirty Read:
Reading
R di a value
l th
thatt was written
itt b by a ttransaction
ti
which failed
Nonrepeatable Read:
Allowing another transaction to write a new value
between multiple reads of one transaction
A transaction T1 may read a given value from a table.
If another transaction T2 later updates that value and
T1 reads that value again, T1 will see a different value
Consider that T1 reads the employee salary for Smith. Next,
T2 updates the salary for Smith. If T1 reads Smith's salary
g , then it will see a different value for Smith's salaryy
again,
Transaction Support
pp in SQL
Q (contd.)
( )
Type of Violation