You are on page 1of 64

2

slides A. Silberschatz, H. Korth, S. Sudarshan , Database System Concepts, 5 th edition

(1)


D = {d1, d2 ,..., dh}
.

12/6/2013

di dj
di dj di
dj.
D
,
.

-
.
, .


.
Ti
.
, Q
Ti
Q Ti.

.

Ti ,
Ti

12/6/2013

, .

(2)



.


.

12/6/2013

.

.

, .

(3)

,
.


J

B, D

12/6/2013

, .

12/6/2013

, .

Timestamp (1)

12/6/2013

Read: ,
Validation: commit. To

Write:

, .

Timestamp (2)

timestamp
. Ti time-stamp TS(Ti),
Tj time-stamp TS(Tj)
TS(Ti) <TS(Tj).

Ti Tj

i Tj Ti

Tj

Ti Tj
Ti
j

12/6/2013

, .

Timestamp (3)


time-stamps
.

,
Q
timestamp:

W-timestamp(Q) time-stamp
write(Q).

R-timestamp(Q) time-stamp
read(Q).

12/6/2013

, .

Timestamp (4)

timestamp
read write
timestamps.

Ti read(Q)

1. TS(Ti) W-timestamp(Q), Ti Q.
, read Ti .

2. TS(Ti) W-timestamp(Q), read


R-timestamp(Q) R-timestamp(Q)
TS(Ti).

12/6/2013

, .

10

Timestamp (5)

Ti write(Q).

TS(Ti) < R-timestamp(Q), Ti


Q. Q Ti
. ,
write Ti .

TS(Ti) < W-timestamp(Q), Ti


Q. , write
Ti .

, write W-timestamp(Q)
TS(Ti).

12/6/2013

, .

11

timestamp-ordering :
Ti , Tj
Ti
Tj

Tj commit ,
.

,
Tj
--- .
rollbacks

12/6/2013

timestamp

, .

13

Thomas Write Rule

timestamp
write
.

Ti Q,
TS(Ti) < W-timestamp(Q), Ti
{Q}.

Ti timestamp ordering protocol,


{write} .

timestamp ordering protocol.

Thomas' Write Rule .

,

.

12/6/2013

, .

14

(1)
Validation based Protocol

Ti .

1. : Ti

2. : Ti

.

3. : Ti ,
. A, Ti .

K
.

12/6/2013

, .

15

(2)

i 3 timestamps

Start(Ti) : Ti

Validation(Ti): Ti

Finish(Ti) : Ti

timestamp
, . TS(Ti)
Validation(Ti).


.

.

12/6/2013

, .

16

Tj

Ti TS (Ti) < TS (Tj)


:

finish(Ti) < start(Tj)

start(Tj) < finish(Ti) < validation(Tj)


Ti
Tj.

Tj commit. ,
Tj .

1. Tj Ti
Ti .
2. Ti Tj
Tj Ti.

12/6/2013

, .

17

start(T15) < finish(T14) < validation(T15)

T15 T14
T14 .
T14 T15
T15 T14.

T14

T15

read(B)

read(A)
(validate)
display (A+B)

read(B)
B:- B-50
read(A)
A:- A+50

(validate)
write (B)
write (A)

12/6/2013

, .

18

Timestamp

read(Q),
Q timestamp

.

read
.

12/6/2013

, .

19

write

: ,
copy
Version pool

timestamp TS

MAIN
SEGMENT
(
versions
DB)

O
O

VERSION POOL
(


).

Q <Q1, Q2,...., Qm>.


Qk :

Content Qk.

W-timestamp(Qk) -- timestamp ()
Qk

R-timestamp(Qk) timestamp
Qk

Ti Qk Q, o
W-timestamp R-timestamp Qk TS(Ti).

R-timestamp Qk
Tj Qk, TS(Tj) > R-timestamp(Qk).

versions pointers .


timestamps:
WTS timeline old

new

version W-timestamp < TS(T) (


version )


version (
) .

timestamps:
(1)

version V W-timestamp < TS(T).


R-timestamp(V) < TS(T), T copy CV V,
W-timestamp(CV) = R-timestamp(CV) = TS(T) (
commit -
version CV)
,

abort &
restart TS.
WTS old

RTS(V)

new
CV

(2)

R-Timestamp(V) < TS(T),



[ overwrite
]
R-Timestamp(V) > TS(T)

abort &

WTS old

new
CV

RTS(V)


(1)

read-only update

(Update transactions)
read write,
update (rigorous two-phase locking)

write
.

timestamp
ts-counter
commit.

Read-only timestamp
ts-counter ;
multiversion timestamp-ordering
reads.

12/6/2013

, .

25


(2)

update

, S_lock ,
.

, X_lock .

timestamp
.

Ti ,
commit :

Ti timestamp ts-counter + 1

Ti ts-counter = ts-counter +1

Read-only transactions ts-counter


Ti = Ti.

Read-only Ti ts-counter
Ti.

12/6/2013

, .

26

(1)

:
T1: write (X)
T2: write(Y)
write(Y)
write(X)

T1
lock-X on X
write (X)

T2

lock-X on Y
write (X)
wait for lock-X on X

wait for lock-X on Y


12/6/2013

, .

27

(2)

(Deadlock
prevention)
.
:

12/6/2013



(predeclaration).



( ).

, .

28

(2)

timestamps
.
wait-die scheme non-preemptive

.
;
.
die

wound-wait scheme preemptive



.
.
wait-die.

12/6/2013

, .

29

(3)

wait-die wound-wait :


timestamp.


starvation .

Timeout-Based :


. ,
.

12/6/2013

; starvation

, .

30

(1)

wait-for,
G = (V,E),
V
E ;
Ti Tj.

Ti
Tj, Ti Tj wait-for . \


wait-for .

12/6/2013

Tj
Ti.

deadlockdetection .

, .

31

Wait-for graph without a cycle


Wait-for graph with a cycle


Ti
Tj, Ti Tj wait-for

12/6/2013

, .

32

(victim)
. victim
.

Rollback

: roll back
.

Starvation
.

12/6/2013

rollback: .

rollbacks
starvation

, .

33

, :

12/6/2013

write = UPDATE INSERT

.., B+ tree

, .

34

: Sailors
SID

SNAME

RATING

AGE

Popay1

71

Popay2

43

Popay3

80

Popay4

63

T1:
SELECT RATING,
MAX(AGE)
FROM SAILORS
GROUP BY RATING

T2: INSERT INTO SAILORS (5,X,1,96);


DELETE FROM SAILORS WHERE
RATING = 2 AND
AGE IN (SELECT MAX(AGE) FROM
SAILORS WHERE RATING =2)

12/6/2013

, .

1

Sailor rating=1


sailor T1

35


SID

SNAME

RATING

AGE

Popay1

71

Popay2

43

Popay3

80

Popay4

63

T1:
SELECT RATING,
MAX(AGE)
FROM SAILORS
GROUP BY RATING

1
1

T2: INSERT INTO SAILORS (5,X,1,96);


DELETE FROM SAILORS WHERE
RATING = 2 AND
AGE IN (SELECT MAX(AGE) FROM
SAILORS WHERE RATING =2)
12/6/2013

, .

RATING

AGE

71

,
RATING=1
36

T2:

SID

SNAME

RATING

AGE

Popay1

71

Popay2

43

Popay3

80

Popay4

63

96

INSERT INTO SAILORS (5,X,1,96);


DELETE FROM SAILORS WHERE
RATING = 2 AND
AGE IN (SELECT MAX(AGE) FROM
SAILORS WHERE RATING =2)
12/6/2013

, .

T1:
SELECT RATING,
MAX(AGE)
FROM SAILORS
GROUP BY RATING

RATING

AGE

71

INS
Xlock
37


SID SNAME

RATING

AGE

1
2

Popay1
Popay2

1
1

71
43

Popay3

80

63

4
5

Popay4
X

2
1

96

T2: INSERT INTO SAILORS (5,X,1,96);


DELETE FROM SAILORS WHERE
RATING = 2 AND
AGE IN (SELECT MAX(AGE) FROM
SAILORS WHERE RATING =2)
12/6/2013

T1:
SELECT RATING,
MAX(AGE)
FROM SAILORS
GROUP BY RATING

, .

RATING

AGE

71

DEL
Xlock

38


SID SNAME

RATING

AGE

1
2

Popay1
Popay2

1
1

71
43

Popay4

63

5
T2:

T1:
SELECT RATING,
MAX(AGE)
FROM SAILORS
GROUP BY RATING

1
1

96

INSERT INTO SAILORS (5,X,1,96);


DELETE FROM SAILORS WHERE
RATING = 2 AND
AGE IN (SELECT MAX(AGE) FROM
SAILORS WHERE RATING =2)
12/6/2013

, .

RATING

AGE

71

2
COMMITS!!
39

T2:

SID SNAME

RATING

AGE

Popay1

71

Popay2

43

Popay4

63

96

T1:
SELECT RATING,
MAX(AGE)
FROM SAILORS
GROUP BY RATING

INSERT INTO SAILORS (5,X,1,96);


DELETE FROM SAILORS WHERE
RATING = 2 AND
AGE IN (SELECT MAX(AGE) FROM
SAILORS WHERE RATING =2)
12/6/2013

, .

RATING

AGE

71

63

,
RATING=2
40

...
SID SNAME

RATING

AGE

1
2

Popay1
Popay2

1
1

71
43

Popay3

Popay4

12/6/2013

1 || 2
RATING

AGE

71

63

1 ; 2
RATING

AGE

80

71

63

80

96

, .

2 ; 1
RATING

AGE

96

63
41


,
,
.

!

12/6/2013

, .

42


( .., RATING = 1, age > 2*salary)

12/6/2013

, .

43

Rating

1
rating =1

Rating =1, 1
,
!

1
file/table ,
rating =1

12/6/2013

, .

44


RATING=1 1

+
, Xlock [ ]

:
,. .
12/6/2013

, .

45


+ ,

S-lock
X-lock
?

Bug: ?

12/6/2013

, .

46

SELECT:

S-lock .
, .

INS/DEL:

X-locks
.
:

, .

12/6/2013

INS: .
DEL: .

, .

47

1
X-locks

2

X-locks
S-lock -lock

S-locks

Elmasri & Navathe,


Ramakrishnan & Gehrke
12/6/2013

, .

48

ROOT

20

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
49

. , .

ROOT

20

DEL 38*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .


...

D
38*

41*

E
44*
50

. , .

ROOT

20

DEL 38*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
51

. , .

ROOT

20

DEL 38*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
52

. , .

ROOT

20

DEL 38*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
53

. , .

ROOT

20

DEL 38*

35

23

G
20*
12/6/2013

22*

23*

24*

38

I
35*

36*

, .

44

D
41*

E
44*
54

. , .

ROOT

20
S

INS 45*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .


...

D
38*

41*

E
44*
55

. , .

ROOT

20

INS 45*

35
S

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
56

. , .

ROOT

20

INS 45*

35
S

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
57

. , .

ROOT

20

INS 45*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

44*
58

. , .

ROOT

20

INS 45*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*

45*
59

. , .

ROOT

20
S

INS 25*

35

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .


...

D
38*

41*

E
44*
60

. , .

ROOT

20

INS 25*

35
S

23

G
20*
12/6/2013

22*

23*

24*

38

44

I
35*

36*

, .

D
38*

41*

E
44*
61

. , .

ROOT

20

INS 25*

35

23

38

44

G
20*
12/6/2013

22*

23*

24*

I
35*

36*

, .

D
38*

41*

E
44*
62

. , .

ROOT

20

INS 25*

35

23

38

44

G
20*
12/6/2013

22*

23*

24*

I
35*

36*

, .

D
38*

41*

E
44*
63

. , .

ROOT

20

INS 25*

35

23

38

44

Upgrade S

G
20*
12/6/2013

22*

23*

24*

35*

, .

36*
64

ROOT

20

INS 25*

35

23

12/6/2013

22*

G
20*

24*

23*

38

H
24*

25
25*

, .

44

I
35*

36*
65

You might also like