Professional Documents
Culture Documents
(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 .
12/6/2013
, .
10
Timestamp (5)
Ti write(Q).
, 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
timestamp
write
.
Ti Q,
TS(Ti) < W-timestamp(Q), Ti
{Q}.
,
.
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
Tj commit. ,
Tj .
1. Tj Ti
Ti .
2. Ti Tj
Tj Ti.
12/6/2013
, .
17
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
(
).
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 (
) .
timestamps:
(1)
abort &
restart TS.
WTS old
RTS(V)
new
CV
(2)
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 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
, .
27
(2)
(Deadlock
prevention)
.
:
12/6/2013
(predeclaration).
( ).
, .
28
(2)
timestamps
.
wait-die scheme non-preemptive
.
;
.
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
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
.., 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
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
, .
RATING
AGE
71
,
RATING=1
36
T2:
SID
SNAME
RATING
AGE
Popay1
71
Popay2
43
Popay3
80
Popay4
63
96
, .
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
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
, .
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
, .
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
, .
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