Thứ tự các giao tác khả tuần tự không phụ thuộc thứ tự thực thi thao tác đầu tiên của các giao tác mà phụ thuộc vào quan hệ thứ tự các cặp thao tác tương tranh trong các giao dịch... KH
Trang 1KIỂM SOÁT ĐỒNG THỜI PHÂN TÁN
GIÁO VIÊN : PGS TS ĐỒNG THỊ BÍCH THỦY
Nhóm : 5 Nguyễn Huỳnh An Phú Nguyễn Thị Bảo Chi
Trang 2KIỂM SOÁT ĐỒNG THỜI PHÂN TÁN
Trang 3KIỂM SOÁT ĐỒNG THỜI PHÂN TÁN
GIỚI THIỆU
Trang 4GIỚI THIỆU
2 pha trong môi trường phân tán.Một số khái niệm về thời gian, thời dấu và thứ tự các sự kiện trong CSDL PT, thuật toán khóa 2 pha.
dụng bằng Timeout, thuật toán detection deadlock, prevention
deadlock
Trang 5Tại sao phải điều khiển đồng thời phân tán ?
và nhất quán (consistency).
thời phân tán
Trang 6KIỂM SOÁT ĐỒNG THỜI PHÂN TÁN
LÝ THUYẾT KHẢ TUẦN TỰ
TRONG MÔI TRƯỜNG TẬP TRUNG
Trang 7KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Ri(x) (read-set), thao tác ghi Wi(x) (write-set), Ri(x) ∩ Wi(x) ≠ Ф
Ti, Tj tuần tự trong S nếu last(Ti) < first(Tj) hoặc last(Tj) <
first(Ti).
lộn về thứ tự)
Trang 8KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Wi(x) Ri(y) Rj(x) Wj(y) Rk(y) Wk(x) S2 tuần tự.
Trang 9KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Trang 10KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Việc thực thi các giao tác theo lịch tuần tự chính xác Tuy nhiên, mục đích là phải thực hiện chúng đồng thời nếu có thể
(để tăng hiệu quả)
01 Schedule thực thi chính xác nếu khả tuần tự tức tương đương với một Schedule tuần tự.
Đ/k 02 Schedule tương đương :
Mọi thao tác đọc đều đọc dữ liệu được cung cấp bởi cùng
thao tác ghi trong cả hai Schedule.
Thao tác ghi cuối cùng trên mỗi dữ liệu giống nhau trong
cả hai Schedule.
02 Đ/k trên là đủ vì mỗi giao tác đọc các giá trị, tính toán
giống nhau trong 02 Schedule Hơn nữa, thao tác ghi cuối trên mỗi dữ liệu được thực hiện bởi cùng giao dịch trong
cả 2 Schedule Tất cả dữ liệu có giá trị giống nhau sau khi thực hiện theo cả 02 cách.
Trang 11KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Hai thao tác tương tranh (conflict) :
Thực thi trên cùng dữ liệu
Ít nhất 1 thao tác ghi
Thuộc 2 giao dịch khác nhau
<Ri(x),Wj(x)>, <Wi(x),Wj(x)> tương tranh
<Ri(x),Rj(x)>, <Wi(x),Wj(y)>, <Wi(x),Rj(x)> không tương tranh
Đ/n S1, S2 tương đương dựa trên khái niệm thao tác tương tranh :
Mỗi cặp (Oi,Oj) thuộc S1,S2.
Oi ˂S1 Oj Oi ˂S2 Oj (quan hệ thứ tự cảm sinh)
Trang 12KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Định nghĩa dựa vào thao tác tương tranh thuận tiện hơn khi kiểm tra schedule khả tuần tự.
S3 : Ri(x) Rj(x) Wj(y) Wi(x)
tương đương với
Serial(S4) : Rj(x) Wj(y) Ri(x) Wi(x)
vì cặp tương tranh duy nhất <Rj(x),Wi(x)> tuân thủ quan hệ thứ tự trong S3, S4
Nhận xét : Tj < Ti trong S4 Thứ tự các giao tác khả tuần tự không phụ thuộc thứ tự thực thi thao tác
đầu tiên của các giao tác mà phụ thuộc vào quan hệ thứ tự các cặp thao tác tương tranh trong các giao dịch.
Trang 13KHẢ TUẦN TỰ TRONG CSDL TẬP TRUNG
Một Schedule khả tuần tự có thể tương đương nhiều Schedule tuần tự
S1 : Ri(x) Rj(x) Wi(y) Rk(y) Wj(x) (khả tuần tự) tương đương S5,S6
(tuần tự)
S5 : Ri(x) Wi(y) Rj(x) Wj(x) Rk(y)
S6 : Ri(x) Wi(y) Rk(y) Rj(x) Wj(x)
Trang 14KIỂM SOÁT ĐỒNG THỜI PHÂN TÁN
TRONG MÔI TRƯỜNG PHÂN TÁN
Trang 15KHẢ TUẦN TỰ TRONG CSDL PHÂN TÁN
CSDL PT, mỗi giao tác thực thi các thao tác trên nhiều vị trí
Schedule cục bộ : Chuỗi thao tác của các giao tác tại một vị trí.
Việc thực thi n giao tác {T1,T2,…,Tn} tại m vị trí được mô hình hóa bằng tập m Schedule
cục bộ {S1,S2,…,Sm}.
Mỗi node có điều khiển đồng thời cục bộ tất cả schedule cục bộ đều khả tuần tự nhưng
không đảm bảo tính đúng đắn khi thực thi tập giao tác phân tán !!!
Trang 16KHẢ TUẦN TỰ TRONG CSDL PHÂN TÁN
Serial(S1)(VT1) : Ri(x) Wi(x) Rj(x) Wj(x)
Serial(S2)(VT2) : Rj(y) Wj(y) Rj(y) Wj(y)
Cả 2 đều tuần tự nhưng không tuần tự toàn cục vì Ti<Tj in Serial(S1) và
Tj<Ti in Serial(S2).
Để đảm bảo tính khả tuần tự các giao tác phân tán trên toàn cục, cần định
nghĩa mạnh hơn
Trang 17KHẢ TUẦN TỰ TRONG CSDL PHÂN TÁN
Việc thực thi tập n giao tác {T1,T2,…,Tn} tại m vị trí chỉ đúng khi :
Tồn tại thứ tự toàn phần T 1 <T 2 <…<T n, khi đó,
nếu T i <T j trong thứ tự toàn phần đó,thì có S k’ để
S k S k’ và T i <T j trong serial(S k’ ) với mọi vị trí k
mà T i ,T j cùng thực thi một số thao tác
Trang 18KHẢ TUẦN TỰ TRONG CSDL PHÂN TÁN
Định nghĩa lại bằng khái niệm thao tác tương tranh.
Định đề 8.1 Cho tập n giao tác {T1,…,Tn}, E là một thực thi được mô hình hóa bằng tập m schedule
{S1,…,Sm}.
E đúng (khả tuần tự) nếu tồn tại thứ tự toàn phần các giao tác (T1<…<Tn) khi đó đối với mỗi cặp thao tác tương tranh <Oi,Oj> từ Ti,Tj tương ứng ta có Oi<Oj (hoặc Oj<Oi) trong mọi Sk thuộc {S1,…,Sm} nếu và chỉ nếu Ti<Tj (hoặc Tj<Ti) trong thứ tự toàn phần
Dùng định nghĩa này để kiểm tra tính đúng đắn khi thực thi giao tác phân tán.
Trang 19Khóa 2 pha
schedule cục bộ đều khả tuần tự.
con của nó tại các vị trí độc lập đều bị khóa 2 pha.
đắn không ?
Trang 20Khóa 2 pha
Giả sử thứ tự toàn phần cho thực thi E (trong định đề 8.1) không tồn tại.
Phải có n cặp tương tranh :
Trang 21Khóa 2 pha
Xét lock(T1,x), lock(T2,y),…, lock(Tn-1,v), lock(Tn,z).
Mỗi giao tác khóa một dữ liệu đã bị khóa bởi 1 giao tác khác mỗi giao tác đều phải chờ giao tác
khác nhả khóa.
Nhận xét : vì các giao tác đều dùng khóa 2 pha deadlock, chờ.
Tình trạng này chỉ được giải quyết khi có 1 giao tác được abort bởi 1 thuật toán giải quyết deadlock.
Trong mọi trường hợp, E không được thi hành Cần sử dụng khóa 2 pha cần kèm theo cơ chế
phát hiện và giải quyết deadlock
Việc thực thi E độc lập với số lượng giao tác, chỉ phụ thuộc thứ tự thực hiện của các cặp thao tác
tương tranh.
Trang 22Khóa 2 pha
Trong Kỹ thuật khóa 2 pha, một số giao tác buộc phải chờ không cần thiết
Ti,Tj chuyển tiền đồng thời từ TK x (VT1) vào TK y (VT2)
Ti : Ri(x) Wi(x) Ri(y) Wi(y)
Tj : Rj(x) Wj(x) Rj(y) Wj(y)
Mỗi giao tác đều R(x), Dec(x), W(x),R(y),Inc(y),W(y) đồng thời Khóa 2 pha đảm bảo tính khả tuần tự việc thực thi giao tác, nghĩa là, có thứ tự toàn phần Ti<Tj (hoặc Tj<Ti), (Wi(x)<Rj(x) và Wi(y)<Rj(y)) hoặc (Wj(x)<Ri(x) và Wj(y)<Ri(y)) deadlock
Trang 23Khóa 2 pha
E : S1 : Ri(x) Wi(x) Rj(x) Wj(x)
S2 : Ri(y) Wi(y) Rj(y) Wj(y)
Ri(x), Rj(y) diễn ra đồng thời, Rj(x) (Tj) thực hiện ngay khi Wi(x), Ti dù Ti chưa kết thúc E khả tuần tự cho phép mức độ đồng thời cao nhất
Nếu sử dụng cơ chế xác nhận 2 pha, các hành động ghi trên sẽ khóa x và y cho đến cuối
giao tác
Trong thực tế, sử dụng khóa 2 pha, Ti, Tj bị buộc thực hiện theo thứ tự tuần tự nghiêm
ngặt, không đồng thời Giải quyết từng tương tranh, không có “complete view” mối quan hệ giữa Ti và Tj
Trang 24 cả hai cách thực hiện Ti<Tk và Tk<Ti, kết quả đều là x=210,y=90
NE Phụ thuộc ngữ nghĩa các giao tác phụ thuộc chương trình ứng dụng Khó
Trang 25NE (các thực thi không khả tuần tự)
NE thuộc tính đồng bộ kiểm soát sự khác biệt.
x,y data item, u = 20,w =10 parameters
Tăng : Inc(x,w), Giảm : Dec(x,u)
Ti : Deci(x,w) Inck(x,u)
Tk Deck(y,u) Inci(y,w)
Dec (x,w) Inc(x,u) ~ Inc(x,u) Dec(x,w) (x-w+u)
<Dec,Inc> : cặp không tương tranh Không phụ thuộc
khả tuần tự
Ti,Tj có thể thực hiện đồng thời
S1 : Deci(x,w) Inck(x,u)
S2 : Dec (y,u) Inc (y,w)
Trang 26 AB : A xảy ra trước B tại cùng 1 vị trí
A gửi message cho B : AB
AB và BC thì AC
là thứ tự bộ phận
Giả đồng thời : ¬(AB) ¬(B ʌ A)
Trang 288.1.5 Time, Timestamp
chưa ?
Trang 29KIỂM SOÁT ĐỒNG THỜI PHÂN
TÁN
CÁC THUẬT TOÁN ĐIỀU KHIỂN KHÓA CHỐT
Trang 31CÁC THUẬT TOÁN
Locking (two phase locking - 2PL).
Lạc quan
Trang 32NGHI THỨC KHÓA CHỐT (Locking
Protocols)
Bộ xếp lịch đảm bảo rằng chỉ duy nhất giao tác có thể giữ khóa chốt trong 1 thời điểm ,và chỉ
có một giao tác có thể truy xuất dữ liệu đó tại cùng một thời điểm
Trước khi một giao tác có thể truy cập dữ liệu dùng chung , bộ xếp lịch sẽ khảo sát trạng thái
khóa chốt của những dữ liệu này
Nếu không có giao tác nào khác đang giữ chúng thì bộ xếp
lịch sẽ phát lệnh thông báo khóa dữ liệu này lại và sau đó các giao tác thực hiện các lệnh của mình trên dữ liệu đó
Nếu dữ liệu đang bị khóa bởi giao tác T2 ,thì giao tác này
phải chờ cho đến khi T2 giải phóng khóa đó
Trang 33NGHI THỨC KHÓA CHỐT(Cont.)
Có 2 loại khóa chốt:
Rli(x) :Khóa đọc trên phần tử dữ liệu x của giao tác Ti
Wlj(x) : Khóa ghi trên phần tử dữ liệu x của giao tác Tj
Hai khóa pli(x) và qlj(y) được gọi là đụng độ ,nếu :
X=y
i<>j
Một trong 2 thao tác là ghi
rli(x) wli(x)
Trang 34KHÓA CHỐT 2 PHA (2 PHASE
LOOKING -2PL)
2PL là một trong những kỹ thuật hiệu quả trong việc khắc phục một số đụng độ cũng như thời gian
chết trong quá trình thực hiện các lệnh của các giao tác.
Nhiệm vụ của bộ xếp lịch 2 giai đoạn (Two phase locking, 2PL) là quản lý khoá chốt và điều khiển
giao tác khi nào lấy và khi nào giải phóng khoá
2PL nhằm đồng bộ hoá việc đọc và ghi Trước khi đọc mục dữ liệu x, phải khóa x (khóa do đọc)
Trước khi ghi lên x, giao tác phải khóa mục x ( khóa do ghi)
Trang 35KHÓA CHỐT 2 PHA (Cont )
2PL khẳng định : không có giao dịch nào yêu cầu khóa sau khi nó đã giải phóng một trong các
khóa của nó
Quá trình cấp phát và thu hồi khóa được thể hiện ở biểu đồ khoá 2PL sau:
Trang 36KHÓA CHỐT 2 PHA (Cont )
Vấn đề:
Cài đặt khó vì LM phải biết rằng giao dịch đã nhận đủ tất cả mọi
khóa và sẽ không còn cần khóa một mục nào nữa.
LM phải biết giao dịch không cần truy xuất mục dữ liệu đó nữa thì
mới có thể giải phóng khóa
Nếu một giao dịch bị hủy sau khi giải phóng 1 khóa ,nó có thể làm
hủy luôn các giao dịch đã truy xuất các mục đã mở khóa (hủy bỏ dây chuyền)
Hướng giải quyết: dùng khóa chốt 2 pha nghiêm ngặt (strict 2 phase locking – S2PL)
Trang 37KHÓA CHỐT 2 PHA (Cont )
Hướng giải quyết: dùng khóa chốt 2 pha nghiêm ngặt (strict 2 phase locking – S2PL)
chỉ sửa đổi phần xử lý các hồi đáp từ BXLDL nhằm đảm bảo rằng
các khóa chỉ được giải phóng nếu thao tác là Commit hoặc Abort
Trang 38 Dbop(opn,data,tid) : một phép toán trên CSDL của ƯD
Dpmsg(opn,tid,result) : một thông báo từ BXL DL
Scmsg(opn,tid,result) : một thông báo từ bộ xếp lịch
Transaction(tid,body)
Message : một chuỗi các ký tự truyền đi
Opset ={Dbop}
SiteSet ={SiteId}
Trang 39THUẬT TOÁN S2PL
Chờ đợi msg
Phép toán (op)
Tbáo (Dpmsg)
Op là abort or commit
F
T
T
T BXL DL
F
Trang 40THUẬT TOÁN S2PL
Phép toán
Tbáo Scmsg
read Trả res về ƯD
Ttin ,trả res về ƯD
Ttin hoàn tất hủy bỏ T
Hủy vùng làm việc của T ,ttin
Trang 412 Phase Locking (2PL)
2PL tập quyền.
2PL bản chính.
2PL phân quyền.
Trang 422PL Tập quyền (Centralized 2PL)
Là mở rộng của 2PL cho môi trường phân tán
Trao trách nhiệm quản lý khóa cho một vị trí duy nhất (ie: chỉ có một vị trí là có bộ quản lý khóa)
Các bộ quản lý giao dịch ở các vị trí khác phải giao tiếp với nó chứ không phải là bộ quản lý khóa riêng của
chúng
Trang 43Thuật toán (Centralized 2PL)
Begin_tra nsaction
read S:=S∪ Si(xЄSi ,chi phí
S:=Ø
Trang 44Op=R / W
Trang 45Thuật toán (Centralized 2PL - C2PL)
Tạo ùn tắc quanh vị trí trung tâm (tốc độ giao dịch tăng)
Độ khả tín thấp (khi bị sự cố)
Thuật toán 2PL bản chính (primary copy 2PL)
Thuật toán 2PL phân quyền (distributed 2PL)
Trang 46Thuật toán 2PL bản chính
khóa trên một tập đơn vị khóa cho mỗi bộ xử lý
Trang 47Thuật toán 2PL phân quyền (distributed 2PL – D2PL)
bản sao ROWA
Trang 48Distributed 2PL
Trang 49KIỂM SOÁT ĐỒNG THỜI PHÂN
TÁN
KHÓA CHẾT TRONG CSDL PHÂN TÁN
PHÁT HIỆN KHÓA CHẾT
Trang 50Deadlock
Deadlock là trạng thái mà trong đó 2 hay nhiều giao dịch(transaction) chờ đợi lẫn nhau giải
phóng tài nguyên mà chúng đang chiếm giữ.
Deadlock có thể sẽ xảy ra khi xuất hiện một số điều kiện sau giữa các giao dịch đồng thời:
Tính độc quyền (exclusiveness)
Chiếm giữ và chời đợi giữa các giao dịch (hold and wait)
Không có sự ưu tiên giữa các giao dịch (No Preemption)
Chờ đợi vòng quanh giữa các giao dịch (Circular wait)
Trang 51Đồ Thị Chờ - Wait-For-Graph (WFG)
WFG là một đồ thị có hướng <T,V> biểu diễn các mối quan hệ chờ đợi lẫn nhau của các
giao dịch:
T: tập các giao dịch đang tồn tại trong hệ thống
V: {TiAjTrAs thỏa TiAj đợi tài nguyên từ TrAs} U
{TiAjTiAs thỏa: TiAj đợi TiAs thực hiện một tác vụ nào đó }
Đồ thị chờ cục bộ: Local WFG (LWFG) tại mỗi site
Đồ thị chờ toàn cục: Global WFG (GWFG) hay Distributed
WFG(DWFG), đây là đồ thị được kết hợp từ các đồ thị chờ cục bộ
Deadlock xảy ra khi mà WFG có một chu trình
Trang 53Phương Pháp Xử Lý Deadlock
Phát hiện và giải quyết deadlock (detection and resolution)
Ngăn chặn deadlock (prevention)
Tránh deadlock (avoidance)
Trang 54Phát Hiện Và Giải Quyết Deadlock
Phát hiện: nghiên cứu các chu trình đồ thị chờ cục bộ và toàn cục
Giải quyết: lựa chọn một hay nhiều giao dịch để hủy nhằm bẻ gãy các chu trình trên đồ thị
chờ Các nhân tố ảnh hưởng:
Số lượng các tác động giữa các giao dịch với nhau
Chi phí hủy giao dịch: được tính dựa trên số lượng những lần
Trang 55Phát Hiện Và Giải Quyết Deadlock
Deadlock phải được dò tìm trong một khoảng thời gian hữu hạn
Các thông điệp trễ có thể là nguyên nhân dẫn đến chu kì dò tìm deadlock bị sai (deadlock
ảo-phantom deadlocks )
Khi phát hiện deadlock, phải kiểm tra xem có phải là deadlock thực sự hay không?
Khi có deadlock xảy ra, có thể ta phải hủy hoặc khởi động lại một giao dịch nào đó Đây là
trường hợp thường thấy trong các hệ hướng giao dịch
Trang 56Phát Hiện Deadlock
Trang 58 Chọn giao dịch để hủy khi có chu trình
Có sự thay đổi gây ra deadlock tiềm ẩn
Trang 59Deadlock ảo
Site 1 Site 2 GWFG
Trang 61Dò Tìm Deadlock Phân cấp
Node lá là các bộ phận dò tìm deadlock tại mỗi site (Local
Trang 63Dò Tìm Deadlock Phân cấp
Sự tương tác giữa các site trong mạng
Giảm phụ thuộc vào site trung tâm
Giảm chi phí liên lạc giữa các site để cập nhật WFG
Trang 66Dò tìm deadlock phân tán
Agent không liên quan,chỉ định danh của giao dịch
Tại mỗi site sẽ dò tìm các chu trình deadlock tiềm năng, và gởi các chu trình này sang site mà
có nằm trong chu trình Thông điệp gởi đi có dạng [EX,T1,T2,…,Tn] Ví dụ [EX,T1,T3]
Luật gởi thông điệp: Chu trình deadlock tiềm năng chỉ được gởi đi khi định danh của giao dịch
mà EX đợi lớn hơn định danh của giao dịch đợi EX
Ví dụ [EX,T1,T3] sẽ không được gởi đi vì T1 < T3
Trang 67Dò tìm deadlock phân tán
(Obermark, 1982)
Thuật toán được thực hiện qua các bước lặp tại mỗi site:
1)Xây dựng LWFG bao gồm node EX
2) Với mỗi thông điệp nhận được:
a)Thêm vào LWFG nếu chưa tồn tại
b) Bắt đầu từ node EX, tạo các cạnh đến các giao dịch kế tiếp trong thông điệp
3) Tìm các chu trình không chứa EX Deadlock
4) Tìm chu trình có chứa EX, nếu thỏa mãn luật gởi thông điệp, gởi sang site khác.
Trang 68[EX,T3,T1]
Trang 69Dò tìm deadlock phân tán
(Chandy/Misra/Haas 1983)
Nếu giao tác P phải đợi giao tác O, nó sẽ gởi thông điệp đến O Thông điệp [P,S,E] gồm:
Giao tác đang đợi P
Giao tác đang truyền đi S
Khi giao dịch E nhận thông điệp [P,S,E]:
Thay E bằng giao tác mà nó đang đợi
Nếu thông điệp có giao tác nhận là P Deadlock
Trang 70T7
T8 T9
Trang 71KIỂM SOÁT ĐỒNG THỜI PHÂN
TÁN
NGĂN CHẶN KHÓA CHẾT
Trang 72Ngăn chặn DeadLock
Phương pháp:
Bộ quản lý giao dịch sẽ kiểm tra 1 giao dịch ngay khi nó được
khởi động lần đầu tiên và không cho phép nó được tiếp tục nếu như nó có thể là nguyên nhân của một DeadLock bất kì nào đó.
Trang 73Ngăn chặn DeadLock
Thực hiện:
Trang 74 Ưu điểm:
Đảm bảo các bế tắc không thể xuất hiện ngay khi giao dịch được khởi tạo
Trên thực tế thì phương pháp này ít được sử dụng để quản
lý Deadlock trong điều khiển giao dịch đồng thời
Trang 75Ngăn chặn DeadLock - Ví dụ
Lược đồ CSDL
FLIGH (FID, Date, From, To, SoldChair, Capability) CUSTOMER (CID, CName, Addr)
FC ( FID, CID, Date, Description)
Giao tác đặt chỗ máy bay:
- Kiểm tra còn chỗ trống không?