Distributed Concurrency Control

Download as ppt, pdf, or txt
Download as ppt, pdf, or txt
You are on page 1of 20

Distributed Database

Systems
Autumn, 2008
Chapter 11

Distributed
Concurrency
Control

Distributed Database Systems

Concurrency control ensures


the consistency and reliability
properties of transactions.

Distributed Database Systems

11.1 Serializability Theory


The

most widely accepted


correctness criterion for
concurrency control algorithms.
A schedule S (also called history)
is defined over a set of
transactions
T = {T1, T2, ,Tn}
and specifies order of execution
of these transactions operations.
Distributed Database Systems

11.1 Serializability Theory


Two

operations
Oij(x) and Okl(x)
accessing the same data item x
are in conflict if one of them is a
write.

Conflicts

are divided into readwrite and write-write types.


Distributed Database Systems

11.1 Serializability Theory


Two

transactions are in conflict if


an operation of one transaction is
in conflict with an operation of
the other by above definition.

Distributed Database Systems

11.1 Serializability Theory


C
T

A complete schedule S defined over a set


of transactions T = {T1, T2, ,Tn} is a partial
C
order ST T , pT where
n

1. T Ui1 i
n

2. pT Ui1 pi
3. For any two conflicting operations Oij x
and Okl x in T , either Oij x pT Okl x
or Okl x pT Oij x
Distributed Database Systems

11.1 Serializability Theory


The

last condition defines the


execution order among conflicting
operations.

Example:

Find a complete schedule for two


transactions T1 and T2
(see next pages)
Distributed Database Systems

11.1 Serializability Theory

Distributed Database Systems

11.1 Serializability Theory


DAG representation of one possible
complete schedule:

Note the dashed lines are added to make the schedule


complete. The complete schedule can be simplified by
{R1(x),R2(x),W1(x),C1,W2(x),C2}
that specifies all operations of T1 and T2 and their
relative orders.
Distributed Database Systems

11.1 Serializability Theory


A schedule is a prefix of a complete schedule.
A prefix of a partial order P = {, } is a
partial order P = {, ' } where


2. ei , e j , ei p e j iff ei p e j
3. ei ,
1.

if e j and e j p ei then e j
The last condition requires that for any element
in , all its predecessors in have to be in .
Distributed Database Systems

10

11.1 Serializability Theory


Prefix

is used to deal

with
conflicting operations
only, or
incomplete schedule
caused by failures
Distributed Database Systems

11

Example
Three

transactions

Distributed Database Systems

12

Example

A complete schedule

A prefix of this complete schedule

Distributed Database Systems

13

11.1 Serializability Theory


Serial

schedule: to complete all


operations of a transaction before
starting any new transactions.
Conflict-equivalent schedules
Two schedules S1 and S2 defined over same
set of transactions are equivalent if for any
pair of conflicting operations Oij x and
Okl x , i k, whenever Oij x p1 Okl x
then Oij x p1 Okl x

Distributed Database Systems

14

11.1 Serializability Theory


A

serial schedule for the three


transactions on previous page:
S = {W2(x),W2(y),R2(z),C2,R1(x),W1(x),C1,R3(x),R3(y),R3(z),C3}

Distributed Database Systems

15

11.1 Serializability Theory


An

equivalent schedule for concurrent


(i.e. interleaved) execution of T1, T2,
and T3:

S={W2(x),R1(x),W1(x),R3(x),W2(y),R3(y),R2(z),C2,C1,R3(z),C3}

Distributed Database Systems

16

11.1 Serializability Theory

Note:
concurrent execution is
the interleaved
execution of
transactions. It is
different from parallel
execution.
Distributed Database Systems

17

11.1 Serializability Theory


Definition of serializability
A schedule S is serializable if and only
if it is conflict equivalent to a serial
schedule.
The above S is serializable since it is
equivalent to the serial execution of
T2, T1 and then T3. This serial
execution order is called serialization
order.
Distributed Database Systems

18

11.1 Serializability Theory


For

a non-replicated distributed
database, if each local schedule is
serializable, their union (the global
schedule) is also serializable as long
as local serialization orders are
identical.
For replicated distributed database,
the issue is complicated. The system
has to synchronize updates of nreplicas by using replica protocol.
Distributed Database Systems

19

To be continued

You might also like