Trật tự hóa các tác động Các tiến trình độc lập tạo ra các giao dịch M Việc thực hiện tuần tự có nghĩa là thực hiện tất cả các giao dịch M theo kiểu nối đuôi nhau và tuân thủ một trậ
Trang 1VAI TRÒ CỦA TRẬT TỰ HÓA
Trang 3Vai trò của trật tự dữ liệu
C1: Nếu A và B là hai sự kiện của cùng một trạm và nếu
A được thực hiện trước B thì theo trật tự của trạm ta có: AB
C2: Nếu A là phát thông điệp bởi một trạm nào đó và nếu
B là thu của thông điệp này thì ta có: AB
Trang 4Vai trò của trật tự dữ liệu
biểu diễn trật tự như sau:
Trật tự từng phần của các
sự kiệnA1A2A3A4A5B1B2B3B4
Trao đổi thông điệpA1B2 và B3A4Chuyển qua
A1A2B2B3B4B1B2B3A4A5A1A2B2B3A4A5
B3
B4
B5
t
Trang 5Vai trò của trật tự dữ liệu
2 Trật tự hóa các tác động
Các tiến trình độc lập tạo ra các giao dịch M
Việc thực hiện tuần tự có nghĩa là thực hiện tất cả các giao dịch M theo kiểu nối đuôi nhau và tuân thủ một trật tự nào đó
thực hiện riêng biệt từng giao dịch
Trật tự hóa của tập hợp các giao dịch M là một dãy tất cả các tác động cấu tạo nên giao dịch M; mỗi
một tác động chỉ xuất hiện một và chỉ một lần
Như vậy, trật tự hóa tuần tự là các trật tự hóa
tương ứng với việc thực hiện tuần tự các tác động
của tập hợp các giao dịch Đây là điều kiện đủ của
sự gắn bó
Trang 6Vai trò của trật tự dữ liệu
Ví dụ 2: Quản lý các tài khoản tại một ngân hàng
Mỗi một người mở tài khoản tại ngân hàng sẽ được lưu trữ trong một bản ghi của CSDL Trong tài khoản của người sử dụng không bao giờ có giá trị bằng 0 hay giá trị âm.
Phép toán chuyển khoản thể hiện bằng cách trừ đi một giá trị P nào đó (P=500) ở một tài khoản và cộng chính giá trị đó vào tài khoản khác
Kí hiệu:
A là số dư tài khoản bị trừ đi (A=1000)
B là số dư tài khoản được cộng vào (B=2000).
U: giao dịch mới
T: các giao dịch chuyển khoản
t: tỉ lệ lợi nhuận tiền gửi (t=0.01)
Ba trật tự hóa có thể là S1, S2, và S3
Trang 7Vai trò của trật tự dữ liệu
Giao dịch loại T A:=(1+t)xAA:=A-P
B:=(1+t)*BB:=B+PGiao dịch loại U
Giao dịch loại T A:=(1+t)xAA:=A-P
B:=(1+t)*B
B:=B+PGiao dịch loại U
Giao dịch loại T
A:=A-P
A:=(1+t)xAB:=(1+t)*B
B:=B+PGiao dịch loại U
Trang 8Vai trò của trật tự dữ liệu
Trật tự hóa S2 có tác dụng tương đương với trật tự hóa tuần tự S3, trong khi đó trật tự hóa S1 lại khác
Trong trật tự hóa S2 và S3, các tác động cập nhật lần lượt của tài khoản A và B đều được thực hiện
theo cùng một tuần tự, còn trong trật tự hóa S1 thì trật tự tác động cập nhật tài khoản B bị đảo ngược
Tóm lại: Vai trò của trật tự dữ liệu
Trang 9SỰ GẮN BÓ THÔNG TIN
1 Điều kiện giả định và thực tế
Ta có một tập thông tin nào đó có thể được truy cập bởi một tập các tiến trình Số lượng các thông tin có thể truy cập được
và các tiến trình có nhu cầu thông tin là con số cố định
Hệ này phát triển rời rạc theo thời gian giữa các điểm quan sát,
ta có thể nhận biết được trạng thái thực của chúng, có nghĩa là các đối tượng và ngữ cảnh thực hiện các tiến trình, hệ kiểu
như vậy hoạt động với độ ổn định tuyệt vời
Các điều kiện giả định này so với hệ thực tế khác nhau như sau:
Các đối tượng và tiến trình có thể được tạo lập và hủy bỏ
Các đối tượng và tiến trình có thể được phân tán trên các trạm khác nhau thông qua hệ thống viễn thông Do vậy ta không xác định được trạng thái của hệ
Hệ thống viễn thông và các tiến trình là các đối tượng có thể xảy
ra sự cố kỹ thuật
Trang 10SỰ GẮN BÓ THÔNG TIN
2 Tác động và giao dịch
Các đối tượng khác nhau của hệ không phải là các đối tượng độc lập nhau, chúng quan hệ với nhau bởi tập hợp các quan hệ gọi là các ràng buộc toàn vẹn
Trạng thái của hệ thoả mãn một tập các ràng buộc toàn vẹn gọi là trạng thái gắn bó
Tuy nhiên, khi có sự cố xảy ra thì để có thể khôi phục lại
dữ liệu và trạng thái gắn bó thông tin của toàn hệ thống
Cần phải xác định được loại, bản chất và vị trí diễn ra sự
cố mà từ đó nhận biết một cách tự động và chuyển đến phương án giải quyết nào cho phù hợp
Việc thực hiện các tiến trình phải duy trì cho được hệ trong trạng thái gắn bó Để chính xác hoá đặc tính này, cần phải lưu ý là trạng thái của hệ chỉ được xác định ở mức quan sát cho trước
Trang 11Mỗi giao dịch được cấu tạo từ một dãy các tác động được thể hiện như sau: Nếu 2 tác động A và B thuộc hai giao dịch khác nhau được thực hiện bởi hai tiến trình thì hiệu ứng tổng quát của chúng sẽ là hiệu ứng của dãy (A;B) hoặc là (B;A)
2 Tác động và giao dịch
Trang 12 Việc thu được một trật tự hóa gắn bó chỉ có thể thành công khi
áp dụng các ràng buộc trên trật tự thực hiện các tác động.
Nguyên lý của phương pháp là ở chỗ làm chậm một tác động nào đó cho đến thời điểm mà sự thực hiện của nó không còn
có nguy cơ phá hủy sự gắn bó của trật tự hóa.
Để đảm bảo các giao dịch trên tôn trọng sự gắn bó thông tin thì người ta đưa ra các phương pháp, cơ chế để đảm bảo khi giao dịch vẫn có sự gắn bó thông tin toàn vẹn dữ liệu trên cơ sở dữ liệu phân tán là cơ chế then cài:
Then cài loại trừ tương hỗ.
Then cài lựa chọn đối tượng.
Giao dịch hai pha.
Trang 133 Triển khai giao dịch tôn trọng sự gắn bó
1 Cơ chế cho phép sắp xếp một cách tổng quát các tác động của cùng một giao dịch, ngay cả khi các tác động
này diễn ra trên các trạm khác nhau
2 Cơ chế điểu khiển các tranh chấp truy cập cục bộ vào các đối tượng đảm bảo tôn trọng tính toàn vẹn của các
đối tượng truy cập cục bộ này
3 Cơ chế có khả năng xử lý các bế tắc và thiếu thốn vô hạn, hậu quả của việc hủy bỏ các giao dịch.
SỰ GẮN BÓ THÔNG TIN
Trang 143 Triển khai giao dịch tôn trọng sự gắn bó
Trang 153 Triển khai giao dịch tôn trọng sự gắn bó
Muốn thực hiện những điều vừa nêu ở trên, người ta đòi hỏi giao dịch phải có các đặc tính toàn vẹn như sau:
2 Nếu một tiến trình bị sự cố trước khi diễn ra các thay đổi của T, trạng thái của hệ là gắn bó.
3 Nếu một tiến trình bị sự cố giữa các thay đổi của T, trạng thái của hệ là không gắn bó.
Trang 17 Thuật toán quản lý nhiều bản sao
tự tuần hoàn
Trang 18PHẦN BÀI TẬP
xử lý được trang bị một bộ nhớ cục bộ hoạt động theo
nguyên tắc của bộ nhớ cache
Các biến toàn cục, được truy cập bởi nhiều tiến trình
Các biến cục bộ chỉ được phép truy cập bởi một tiến trình có nhu cầu.
Các hằng chia sẻ được.
một kí hiệu cho phép nhận dạng kiểu của đối tượng chứa trong đó Một đối tượng không thể thay đổi kiểu
vào các loại đối tượng khác nhau đó với điều kiện duy trì sự gắn bó bằng cách sử dụng ghi tức thời
Trang 191 Giải thuật Duy trì sự gắn bó thông tin:
Giải thuật duy trì sự gắn bó thông tin đối với hệ trên theo phương pháp tránh bế tắc và thiếu thốn dựa trên nguyên lý sau.
Bước 1: Then cài ngầm định.
động khác nhau trên trạm và diễn biến theo một trật tự hoá hợp thức
nói cách khác là tiến trình Pji mà tiến trình này đang thực hiện trên Si
giao dịch sử dụng theo kiểu chia sẻ trước khi đọc, theo kiểu loại trừ trước khi ghi Tất cả các mở then chỉ diễn ra sau khi xong một giao dịch
Trang 201 Giải thuật Duy trì sự gắn bó thông tin:
Hành vi xung đột truy cập vào đối tượng khi có hai giao dịch cố gắng thực hiện các tác động không tương thích vào một đối tượng này
Một xung đột được xác định khi có ý định truy cập bởi một giao dịch T2 vào một đối tượng đã khoá ngầm định bởi giao dịch T1 theo kiểu không tương thích
Không nên để T2 chờ cho đến khi T1 kết thúc mà phải huỷ bỏ một trong hai giao dịch này.
Trang 211 Giải thuật Duy trì sự gắn bó thông tin:
Bước 3: Khẳng định.
ưu tiên có thể bị huỷ bỏ, nên cần phải áp dụng có hệ thống một kỹ thuật khẳng định
nó đã được cài then thì được mở then, và tất cả các giá trị phải được thay đổi khôi phục trở lại như cũ
hiện trên các bản sao đối tượng Nếu giao dịch bị huỷ thì một thông điệp được gửi đi cho tất cả các trạm chứa các đối tượng thay đổi và các bản sao bị huỷ bỏ
một thông điệp khẳn định được gửi cho tất cả các trạm và lúc này các bản sao đối tượng được phép thay thế các bản gốc
Trang 222 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Một bế tắc được loại bằng cách hủy bỏ hoàn toàn một trong các giao dịch gây nên xung đột.
Nhưng nếu ta chọn theo kiểu ngẫu nhiên để hủy bỏ thì ta lại
gặp phải một trường hợp rắc rối về kỹ thuật khác là một hay
một số giao dịch nào đó sẽ rơi vào trạng thái chờ vô hạn
Sử dụng chiến lược chọn lựa giao dịch : phương pháp wait-die system
Giả sử rằng T1 và T 2 là hai giao dịch đang ở trạng thái xung đột để truy cập vào một đối tượng chung e
T1 đã thực hiện động tác đầu tiên trên e
Ta gọi các N(T1) và N(T2) là các dấu kết hợp lần lượt với từng giao dịch khi khởi sự.
Khi diễn ra xung đột, việc lựa chọn được thực hiện bằng bộ điều khiển của trạm e được tiến hành như sau:
Nếu N(T2)<N(T1) thì <T2 bị chặn>
Nếu không <T2 bị hủy rồi được khởi sự lại>
Chấm dứt nếu
Trang 232 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Thuật toán điều khiển đồng thời bằng khóa chốt
Dùng hai loại khóa chốt : Khóa đọc (read
lock) và Khóa ghi (write lock)
Một giao dịch Ti đang muốn đọc một mục dữ liệu được chứa trong đơn vị khóa x sẽ nhận được một khóa đọc trên x [ký hiệu là rli(x)]
Và tương tự với thao tác ghi là wli(x)
Nếu chúng truy cập đến cùng một mục dữ
liệu thì có thể nhận được khóa trên mục dữ liệu đó cùng lúc
Trang 242 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Thuật toán điều khiển đồng thời bằng khóa chốt
Ma trận tương thích của các thể thức khoá được thể hiện như hình sau
Vì vậy hai giao dịch có thể đọc đồng thời một mục
Trang 252 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Thuật toán điều khiển đồng thời bằng khóa chốt
quản lý khóa
thao tác Cơ sở dữ liệu (đọc hoặc ghi) và các thông tin kèm theo (như dữ liệu cần truy xuất, định danh của giao dịch
đưa ra yêu cầu)
chứa mục dữ liệu đó đã bị khóa hay chưa
thức của giao dịch đang yêu cầu, thao tác sẽ bị hoãn lại
tác này sẽ được chuyển bộ xử lý dữ liệu để truy xuất cơ sở dữ liệu thực sự.
hiện
khởi hoạt một giao dịch khác đang đợi truy xuất dữ liệu này
Trang 262 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Thuật toán điều khiển đồng thời bằng khóa chốt
Quy tắc khóa hai pha chỉ đơn giản khẳng định rằng 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ó
Nó không giải phóng khóa cho đến khi nó bảo đảm rằng không yêu cầu thêm khóa nữa
Thuật toán 2PL thực hiện các giao dịch hai pha mỗi giao dịch có một pha tăng trưởng trong pha này nó nhận khóa và truy xuất các mục dữ liệu và có một pha thu hồi là giai đoạn giải phóng các khóa.
Trang 27Bắt đầu Điểm khóa Kết thúc Thời gian giao dịch
Nhận khóa Giải phóng khóa
Số
khoá
Biểu đồ khóa 2PL
2 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Thuật toán điều khiển đồng thời bằng khóa chốt
Trang 282 Hủy bỏ bế tắc và thiếu thốn vô hạn:
Thuật toán điều khiển đồng thời bằng khóa chốt
Điểm khóa là thời điểm giao dịch đã nhận
được tất cả các khóa nhưng chưa băt đầu
giải phóng bất kỳ khóa nào
Hình trên chỉ ra việc hoàn tất khóa sau khi
hoàn tất việc truy xuất
Nhưng việc cài đặt gặp khó khăn vì bộ quản
lý khóa 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 một
khóa mục nào nữa
Trang 29Định nghĩa dùng trong giải thuật:
Declare-type
Operation: Một trong những thao tác Begin_Transaction, Read, Write, Abort, hoặc
Commit
DataItem một khoản mục dữ liệu trong CSDL phân tán
TransactionId: Một giá trị duy nhất được gán cho mỗi giao dịch
DataVal: mọt giá trị có kiểu dữ liệu cơ bản(integer, real, )
SiteId: định danh duy nhất cho vị trí
Dbop {một phép toán trên CSDL của ứng dụng}
Body: thân giao dịch
Message <- một chuỗi ký tự cần được truyền đi
Trang 30hoàn tất hành động ghi trả res
End
Abort:
Begin Thông tin cho ứng dụng biết về
việc hoàn tất huỷ bỏ giao dịchT
End End case End
End case Until forever End {2PL-TM}
Trang 31KẾT LUẬN
Các giao dịch thực hiện truy cập đồng thời lên cơ
sở dữ liệu trên môi trường phân tán sẽ có rất nhiều vấn đề nảy sinh và không đảm bảo gắn bó thông tin lúc truy cập
Ngăn chặn các vấn đề này người ta đưa ra hàng loạt phương pháp, cơ chế nhằm đảm bảo gắn bó thông tin trong môi trường CSDL phân tán.
Vì có rất nhiều thuật toán liên quan đến vấn đề đảm bảo gắn bó thông tin trong cơ sở dữ liệu phân tán
và thời gian thực hiện tiểu luận này là rất ít nên không trình bày tất cả các phương pháp, thuật toán liên quan đến quá trình đảm bảo gắn bó dữ liệu khi truy cập xử lý các giao dịch mà chỉ liệt kê danh sách các thuật toán này.
Trang 32TÀI LIỆU THAM KHẢO
Hệ tin học phân tán của PGS.TS Lê Văn Sơn NXB Đại học quốc gia TP Hồ
Chí Minh.
Nguyên lý các hệ cơ sở dữ liệu phân tán của Patrick Valduriez , Trần Đức
Quang Biên Dịch Tập 1 + Tập 2 , NXB Thống Kê.
Học liệu mở của Việt Nam về hệ phân tán trong tin học:
http://hoclieumo.com/course/info.php?id=68
Tổng kết các công cụ xây dựng HPT:
http://itp.hut.edu.vn/bkel/course/info.php?id=84
Distributed systems engineering: http://www.iop.org/EJ/journal/DSE
Introduction for distributed systems:
Trang 33XIN CHÂN THÀNH CẢM ƠN