Bài giảng Hệ quản trị cơ sở dữ liệu: Chương 3 Điều khiển truy xuất đồng thời cung cấp cho người học những kiến thức như: Phân loại các vấn đề của truy xuất đồng thời; Các kỹ thuật điều khiển đồng thời; Vấn đề khoá chết; Các vấn đề khác.
Trang 1
LOGO
Trang 2Nội dung trình bày
Trang 3Nội dung trình bày
Trang 7Vấn đề đọc dữ liệu rác
§ Xét 2 giao tác T1 và T2 được xử lý đồng thời
–
Trang 9Các kỹ thuật điều khiển đồng thời
§
Kỹ thuật khoá
Kỹ thuật nhãn thời gian
Kỹ thuật xác nhận hợp lệ
Trang 10Nội dung trình bày
Trang 11Kỹ thuật khoá đơn giản
§ Kỹ thuật khoá đơn giản còn gọi khoá nhị phân (Binary locks)
§ Bộ lập lịch với cơ chế khóa đơn giản (locking scheduler)
Trang 12Kỹ thuật khóa đơn giản
Trang 13Kỹ thuật khóa đơn giản (tt)
Trang 14Kỹ thuật khóa đơn giản (tt)
§
–
–
S
Trang 15Kỹ thuật khóa đơn giản (tt)
§
Cho biết lịch nào hợp lệ? Giao tác nào là đúng đắn ?
Trang 16Kỹ thuật khóa đơn giản (tt)
§
Cho biết lịch nào hợp lệ? Giao tác nào là đúng đắn ?
Trang 17Kỹ thuật khóa đơn giản (tt)
Trang 18Kỹ thuật khóa đơn giản (tt)
18
S
Trang 19Kỹ thuật khóa đơn giản (tt)
Trang 20Kỹ thuật khóa đơn giản (tt)
Trang 21Nghi thức khoá 2 giai đoạn
Trang 22Tại sao lại cần nghi thức khoá 2 giai đoạn ?
§
Trang 23Kỹ thuật khóa đơn giản (tt)
Write(A) Unlock(A)
Giao tác nào thoả nghi thức
2 giai đoạn ?
Lock(B) Read(B) B=B-‐50 Write(B) Unlock(B) Lock(A) Read(A) A:=A+50 Write(A) Unlock(A)
Lock(A) Read(A) Unlock(A) Lock(B) Read(B) Unlock(B)
Trang 24Kỹ thuật khóa đơn giản (tt)
Unlock(B)
Lock(A)
Read(A) A:=A+50 Write(A)
Trang 25Kỹ thuật khóa đơn giản (tt)
25
T2
T1
Read(A,s) s:=s*2
S
T2
T1 S
Write(B,t); Unlock(B) Read(B,t); t:=t+100
t:=t+100; Write(A,t) Lock(A); Read(A,t) Lock(B); Unlock(A)
Lock(B) ; Ulock(A)
Read(B,t); t:=t*2 Write(B,t); Unlock(B)
s:=s*2; Write(A,s) Lock(A); Read(A,s)
Lock(B) Không phát khóa
được, phải chờ đến lúc này
Trang 26Kỹ thuật khóa đơn giản (tt)
Trang 27Kỹ thuật khoá đơn giản (tt)
Trang 28Nội dung trình bày
Trang 29Kỹ thuật khóa đọc ghi
Trang 30Kỹ thuật khóa đọc ghi (tt)
Trang 31Kỹ thuật khóa đọc ghi (tt)
Trang 32Kỹ thuật khóa đọc ghi (tt)
Trang 33Kỹ thuật khóa đọc ghi (tt)
Trang 34Kỹ thuật khóa đọc ghi (tt)
Trang 3535
Ví dụ
Trang 3636
Ví dụ
Trang 3737
Ví dụ
Trang 3838
Ví dụ
Trang 39Kỹ thuật khóa đọc ghi (tt)
§
39
T T
S
↓
↓
Trang 40Kỹ thuật khóa đọc ghi (tt)
Trang 41Kỹ thuật khóa đọc ghi (tt)
§
T T
S
Trang 42Nội dung trình bày
Trang 4444
Kỹ thuật khóa đa hạt (tt)
§ Phải quản lý khóa ở nhiều mức độ
Trang 45Bộ (Tuple)
Bộ (Tuple) Bộ (Tuple) Bộ (Tuple) Bộ (Tuple)
Bộ (Tuple)
Bộ (Tuple) Bộ (Tuple)
Trang 46 Warning (intention to) shared lock: IS
Warning (intention to) exclusive lock: IX
Trang 4747
Kỹ thuật khóa đa hạt (tt)
§ Ma trận tương thích trên cùng một node
Trang 4848
Kỹ thuật khóa đa hạt (tt)
§ Ma trận tương thích giữa node cha và node con
Trang 49à
Trang 55Kỹ thuật khóa đa hạt (tt)
Trang 56Nội dung trình bày
Trang 58Giới thiệu
§
–
Trang 5959
Nhãn thời gian toàn phần
§ Mỗi giao tác T khi phát sinh sẽ được gán 1 nhãn TS(T) ghi
nhận lại thời điểm phát sinh của T
§ Mỗi đơn vị dữ liệu X cũng có 1 nhãn thời TS(X), nhãn này ghi
lại TS(T) của giao tác T đã thao tác read/write thành công sau cùng lên X
§ Khi đến lượt giao tác T thao tác trên dữ liệu X, so sánh TS(T)
Nếu TS(T) ≥ TS(X) thì cho T ghi X và gán TS(X) = TS(T)
Ngược lại T bị hủy (abort)
Trang 60Nhãn thời gian toàn phần
Trang 61Read(B) A=A*2
Write(A)
B=B+20 Write(B)
Read(B)
Trang 62Nhãn thời gian toàn phần
Trang 63Nội dung trình bày
Trang 64Nhãn thời gian riêng phần
Trang 65Nhãn thời gian riêng phần
Trang 66Nhãn thời gian riêng phần
(
l
Trang 67Nhãn thời gian riêng phần
l
Trang 68Nhãn thời gian riêng phần
§
l
l
à
Trang 69Nhãn thời gian riêng phần
Trang 70Nhãn thời gian riêng phần
§
l
l
à
Trang 71Nhãn thời gian riêng phần
Trang 72Nhãn thời gian riêng phần
Trang 73Nhãn thời gian riêng phần (tt)
Trang 74Write(B) Read(C) TS(T 1 )=100 WT(A)=0 WT(B)=0 RT(C)=0 WT(C)=0
Trang 75Read(C)
Trang 77T TS=175
T TS=255
Read(A)
Trang 78Nội dung trình bày
Trang 79Nhãn thời gian nhiều phiên bản
Trang 80Nhãn thời gian nhiều phiên bản (tt)
Trang 81Nhãn thời gian nhiều phiên bản (tt)
Trang 82Ví dụ
82
RT=150 WT=0
RT=0 WT=200
T 1
Read(A)
T 2 TS=200
A 0 RT=0
Read(A) Write(A) Write(A)
Read(A)
T 3 TS=175
T 4 TS=255
Read(A)
RT=0 WT=150 RT=200 WT=150
RT=200 WT=150
A 1 A 2
RT=255 WT=200
Trang 83Write(A) Write(B) Read(B)
Write(A)
A 0 RT=0 WT=0 RT=100 WT=0
A 1
RT=0 WT=200
B 0 RT=0 WT=0
B 1
RT=0 WT=200 RT=100
WT=0
A 1
RT=0 WT=100
A 2
RT=0 WT=200
Trang 84Nhãn thời gian nhiều phiên bản (tt)
Trang 85Tài liệu tham khảo
§
–
Trang 86LOGO
Trang 88Timestamp vs Locking
§
§
Trang 90Strict Timestamp Based Concurrency Control
§
–
§
Trang 95Timestamp-based approach
§
–