Title: Transaction Management
1????? ????????? 2
- Transaction Management
- Part 2
2???? ??????? ?"? ??????
3?????? Locking
- ????? ??? ?????? ??????? ?? ???????? ???-???????
- ??? ??? ????? ??? ??? ?"? ????? ???????? (locks)
- ??? ???? ?? ??? ???? ???????
- ????? ????? (shared), ?????? ?"? S
- ????? ????? (exclusive), ?????? ?"? X
4????? ???? ???????
- ??? ????? ???? A ???? ????? ????? ???? ??????
????? - ?????? ???? ????? ?? ?????? ???? ??????
- ??? ????? ???? A ???? ????? ????? ???? ??????
????? - ?????? ???? ????? ?? ?????? ???? ??????
- ?? ???? ????? ???? ?????, ?? ???? ????? ?????
????? ????? ?????? ????? - ?????? ???????? ?????? ????? ???????
5??? ???? ??????
- ???? ?????? ?????? ?????? ??-????? ????? ????? ??
???? A - ????? ???? ?? ???? ??????? ????? ????? ?? A
- ?? ???? ??? ????? ?????? ????? ????? ?? ???? A
- ??? ??? ???? ???? ??? ????? ????? ?? ????? ?? A
- ???? ??????? ????? ??????? ??????
6???????? ?????? ???? ?????
7???????? ?????? ???? ?????Two-Phase Locking (2PL)
- ???? ????? ????
- ????? ????? ???? ????? ?? ????
- ????? ????? ???? ????? ?? ????
- ???? ????? ?????? ????? ????? ??? ?? ????? ????
??????? ?????? - ??? ????????? ???? "?????? ???? ?????"
- ????? ???? ?? ???? ???????
- ??????? ???? ?? ????? ???????
8????? ?????? 2PL ??? ??-??????? ??????????
- ???? ????? ??? ?? ???? ?????? ???????? 2PL ???
??-??????? ?????????? - ????? ??? S ????? ?????? 2PL ????? ?????
????????? ?? ???? - ???? ?????? ?????? ?????
9??? ?- T1 ?- T2 ??????
- ?? ?? ??? T1 ? T2 ?? ????? ???? ??? ???? ????? ??
???? ???? ??????? ????? ???? (???? ?????? ????
????? ?????) ?????? ????? ?? ????? ????, ???? ??
??? ?????? ???? ????? - ????? T1 ?????? ????? ?? ???? ????? ???? ?- T2
????? ????? ?? ???? ????
10?? ?? ????? T1 ? T2 ? T3 ? T4 ?? ???? ?-
- T1 ?????? ????? ???? ?- T2 ????? ?????
- T2 ?????? ????? ???? ?- T3 ????? ?????
- T3 ?????? ????? ???? ?- T4 ????? ?????
- ?????? ?????????
- T1 ?????? ????? ?? ???? ????? ???? ?- T4 ?????
????? ?? ???? ??? (???? ??? ?? ????? ????
???????? ?? ???? ????)
11?????, ?? ?? ???? T1 ? T2 ? T3 ? T4 ? T1 ??
???? ?-
- T1 ?????? ????? ?? ???? ????? ???? ?- T1 ?????
????? ?? ???? ??? - ????? T1 ???? ?????? ???????? 2PL
- ?????? ?????? ??????, ???? ????? ????????? ???
???? ??????? S ??? ??-??????? ?????????? - ?.?.?.
12???? ?????????????? ????? ??????
13???? ???????Lock Manager
- ???? ???????? ???? ?????? ???????? ???????
??????? - ????? ???? ??? ?? ????? ??? ???? A ??
- ????? ??????? ????? ??????? ????? ?? A
- ??? ??????
- ????? ???? ?? ????? ???????? ?? A
- ???? ?? ????? ?????? ?? ????? ?????? ??????
??????? ??????? - ???? ????? ????? ????? ?????? ?????
14??? ?? ??????Deadlock
- ??? ?? ?????? ????? ???? ???? ???? ?? ??????, ??
??? ???? ????? ???? ?????? ????? ????? ?"? ?????
???? ????? - ??? ????? ???? ????? ??????
- ????? ???? ??????
- ????? ???? ?????? ???????
15????? ??? ??????
- ????? ??? ?? "???? ?-" (waits-for graph)
- ???? ??? ????
- ??? ?- T1 ?- T2 ?? T1 ???? ?????? ????? T2 ??????
- ???? ???? ???? ???????? ???? ?? ?? ???? ????
(??????? ??? ?? ??????) - ?? ?? ????, ?????? ?? ??? ??????? ?????? ??
?????, ???????? ???? ????
16????? ???? ????? ????? ????? ????? ??????? ????
????, ??? ?????? ???? ?????? ???? (??? ???? ???
?????)
- T1 S(A), R(A), S(B)
- T2 X(B),W(B) X(C)
- T3 S(C), R(C) X(A)
- T4 X(B)
17????? ???? ??????
- ?????? ??? ???? ????? ??? (??????? ?? ??? ??????
?? ?????) - ??? ????? ???? ???? ?? ??? ????? ????
- ???? ?- T1 ???? ?????? ?- T2 ??????
- ??? ????? ????? ???? ?????
- Wait-Die
- Wound-Wait
18?????, T1 ???? ???????- T2 ??????
- Wait-Die ???? ????? ?????? ????? ????? ??????
- ?? ?- T1 ?????? ????? ????, ?? T1 ???? ??????
?????? ?"? T2 ???? ?????? ?? T1 (?????, ??????
?? abort) ???????? ???? ???? - Wound-Wait ???? ????? ??????? ????? ?????
?????? - ?? ?- T1 ?????? ????? ????, ?? ?????? ?? T2
???? T1 ???? ?- T2
19Wait-Die
- ???? ????? ?????? ????? ???? ????? ????? ???????
????? ?? - ???? ?????? ?? ?? ???????? ???? ????? ????? ?????
- ???? ????? ????? ?????? ??? ???? ?? ??? ??? ????
????? ?????, ??? ????? ?? ????? ?"? ?????? ??????
????
20Wound-Wait
- ???? ????? ?????? ?? ??? ?????? ????? ?????? ????
????? ???? - ???? ????? ?????? ?? ?? ??? ??? ????? ?? ??
???????? ???? ????? (???? ????? ?????) - ???? ????? ???? ??????
21????? ???? ??? ???????????? ???? ??????
- ??? ??? ???? ?????? ??? ?????? ???????
- ????? ?????? ????? ?????? ???? ??????
- ????? (starvation) ?????? ????? ?? ?????? ?? ???
????? ?? ?? ???????? ???? ????? - ????? ????? ?????? ??? ???? ???? ???? ???????
- ??? ????? ?????, ????????? ???? ????, ???? ??????
?? ?? ????? ???? ?????? ?? ????
22???????? ???????
- ???? ?? ????? ???? ????????????? ?? ???????
????????
23????? ????? ??? ?????? ??????
- ??????? ??? A, B
- ????? 100 ? ?- A ?- B
- ???????
- ??????? ?????, ??? ?? ???? ?? ????? ???? ????
????? ?????? ???????? - ?????? ??? ?- A ??? ?????? ?- B
- ??????? ??????? ????? ?????
AA-100 BB100
24????? ????? ?? ??????
- ?????? ?????? ?? ??? ?????? ????? ?????? ?????
?????, ????? - ??????? ?????? ???????, ??
- ????? ?????? ???
- ?????? ??????? (????? commit) ???? ?????? ?? ??
???????? - ?? ??????? ???????, ?? ?? ???????? ??????
- ????, ??? ????? ?????? ?? ????? ????
25?????? ???????? (Recovery)
- ??? ????? ??? ?????? ?????? ???????? ?????? ??
?????? ????? - ???? ?? ?? ??????? ????? ??????? ?? ??? ????
(abort) ???? ?????? commit - ????? ??? ??????? ?? ??????? ?????? ???? ??
??????? ????? commit - ????? ???? ????? ??? ???? ?????? ?????????
26????? ?????? ????????
27????? ???????Dirty Read
- ???? ????? T1 ????? ??? ?? ???? A ????? ?"? ????
T2 - ?? ????? ???? T2 ??????, ??
- ???? ???? ?? ?? T1! (?? ???? ??? ?????? ????
????) - ???? ??? ????? (cascading aborts)
- ?? T1 ??????? (???? commit) ???? ???????? ????
????, ?? ?????? ???? ????? ???????? (schedule
is not recoverable), ?? ??? ??? ????? ?? T2 ????
??? ????? (?? ?????? ????? ?? ?? ?????? ?? T1)
28????? ?????? ????????(Recoverable Schedule)
- ????? ????? ???????? ?? ???? ??????? ?? ????
(?????? ?-) ?? ??????? ??? ?????? ??? ????
??????? - ????? ??????? ?? ????? ?????? ????
- ???? ????? ????? ?? ????? ?????? ?"? ?????? ????
??????? - ????? ?????? ???? ?? ????? ????????
(recoverable) ????? ??? ?????
29???????? 2PL ?????Strict 2PL
- ??? 2PL ????? ??????? ?????? ????
- ???? ?????? ?? ???????? ???? ?????? ?? ????
???????? - ????????? ?????? ???? ??? ????? ?????? ????????,
???? ???? ???? ???? ?????
30????? ?????????
31?????? ???? ?????????? ?????????
- EMPS(Name,Dept,Age)
- T1 ????? ????? ?? ????? ?????? ????? ?- CS ??- EE
- T2 ?????? ???? ??? ?- CS ???? ?????? ?????,
?????? ?- EE ?? ????? ?????? ?????
32????? ????? ?????? 2PL
T1 ????? ?????? ?? CS ????? ?? EE ?- T2 ????? ????
- T1 ????? ?? ?? ??????? ?? CS ?????? ?? ?????
?????? ????? (????? 71) - T2 ?????? ???? ?- CS ????? 75
- ???? ????? ??? ???? ?- T1 ?????? ??????? ?? ??
??????? ?? CS ??????? ???? ???? - T2 ????? ?? ?? ??????? ?? EE ?????? ?- EE ??
????? ?????? ????? (????? 80) - T2 ?????? ?? ?? ???????? ???? ??????
- T1 ????? ?? ?? ??????? ?? EE ?????? ????? ??????
????? (????? 63)
33??? ????? ????? ????
- ?? T1 ??? ??????, ?? ??? ????? ?????? ??? 71 ?-
CS ???? 80 ?- EE - ?? T1 ??? ????, ?? ??? ????? ?????? ??? 75 ?- CS
???? 63 ?- EE - ????? ????? ?????? ?- T1 ?????? ??????? ??
??????? ??? ???? ?- CS, ??? ?? ?? ???????
????????? ?- CS ??? ??? ??????
34?????
- ??-??????? ?????????? ?????? ??-??????? ?? ??
????? ??????? ??????? ???? ??? ?????
35????? ????? ????? ????????Predicate Locking
- ???? ????? ???? ????? ?? ?? ??????? ???????? ????
(??????) ?????, ???? - AGE gt 50 ?? DEPT CS
- ?? ??? ????? ???????? ????? ????? (?? ????? ???),
- ?? ?? ???? ????? ?? ?? ??????? ???????? ?? ?????
DEPT CS ?? ?? ?????? ?? DEPT - ?????? ?? ?? ??????? ???? ?????? (?? ??????
??????) ????? ?????? ???? DEPTCS - ?? ??? ??????, ???? ?????? ?????? ??? ????????
?????? ?- EMPS, ???? ???? ????? ?????? ?? EMPS
???????? ?? ????? DEPT CS