Tài liệu hạn chế xem trước, để xem đầy đủ mời bạn chọn Tải xuống
1
/ 19 trang
THÔNG TIN TÀI LIỆU
Thông tin cơ bản
Định dạng
Số trang
19
Dung lượng
533,04 KB
Nội dung
CHƯƠNG 16 – GIAODỊCHVÀKIỂMSOÁTĐỒNGTHỜIGiaodịchGiaodịch lồng Kiểmsoát truy cập đồngthời Khóa Kiểmsoátđồngthời tin cậy Nhãn thời gian Giaodịch (Transactions) Mục đíchgiaodịch đảm bảo đối tượng trạng thái quán chúng truy cập nhiều giaodịch trường hợp có lỗi xảy Khái niệm Hoạt động nguyên tử Việc sử dụng luồng cho phép nhiều client truy cập vào đối tượng Vì vậy, phương thức đối tượng cần thiết kế để sử dụng bối cảnh đa luồng Nếu luồng gọi phương thức đối tượng đối tượng bị khóa Nếu luồng khác gọi phương thức bị khóa khóa giải phóng Các hoạt động mà không bị can thiệp từ hoạt độngđồngthời thực thi luồng khác gọi hoạt động nguyên tử Trong số trường hợp, client đòi hỏi chuỗi yêu cầu riêng biệt, yêu cầu đặt là: - Chúng không bị can thiệp hành độngđồngthời từ client khác - Hoặc tất hành động phải thực thành công, hành động thành công máy chủ bị lỗi Ví dụ: Thực giaodịch chuyển tiền tài khoản ngân hàng: Tài khoản A B tương ứng có $500 $100; Cần chuyển $300 từ tài khoản A sang tài khoản B Sẽ có lệnh cập nhật sau: - Trừ số tiền có tài khoản A $300 - Cộng thêm số tiền có tài khoản B thêm $300 Nếu lệnh diễn độc lập (không giao dịch), lý đó, lệnh thứ bị lỗi, tài khoản A $200 tài khoản B giữ nguyên $100 Điều chấp nhận $300 dưng biến Nếu thực lệnh giao dịch, đảm bảo - Hoặc lệnh cập nhật thành công - Hoặc trường hợp có lỗi lệnh bị hủy Năm 1983, Cụm từ ACID đưa để dễ dàng ghi nhớ tính chất giao dịch: Tính nguyên tử (Atomicity) Một giaodịch có nhiều thao tác khác biệt toàn thao tác không thao tác hoàn thành Tính quán (Consistency) Một giaodịch tạo trạng thái liệu hợp lệ, trường hợp có lỗi toàn liệu chuyển toàn trạng thái trước thực giaodịch Tính tách biệt (Isolation) Một giaodịch thực chưa xác thực phải bảo đảm tách biệt khỏi giaodịch khác Tính bền vững (Durability) Dữ liệu xác thực hệ thống lưu trữ cho trường hợp hỏng hóc có lỗi hệ thống, liệu đảm bảo trạng thái xác Ví dụ: Lịch sử giaodịch Client mở thành công giaodịch đến Server, giaodịch cấp định danh, định danh sử dụng hoạt động khác giaodịchCác hoạt động từ Client Server ban đầu thực thành công Khi hoạt động Server bị lỗi, Server gửi thông báo cho Client Khi Client Hủy bỏ giao dịch, giaodịch kết thúc Một số Đặc điểm giaodịch - Nếu máy chủ bị lỗi bất thường hành động cuối cần thay - Bất kỳ giaodịch chưa xác thực bị hủy bỏ - Giaodịch xác thực thời điểm gần sử dụng để khôi phục giá trị cho đối tượng - Để đối phó với client bị lỗi trình giao dịch, máy chủ cung cấp cho giao dịch, khoảng thời gian định loại bỏ giaodịch không hoàn thành trước thời gian - Nếu máy chủ bị lỗi tiến hành giao dịch, client nhận hành động trả sau hết thời gian chờ Nếu máy chủ bị lỗi, giaodịch không giá trị khách hàng phải thực giaodịchGiaodịch lồng - Giaodịch lồng giaodịch bao gồm số giaodịch khác - Giaodịchgiaodịch lồng gọi giaodịch top-level Cácgiaodịch khác nhỏ giaodịch toplevel gọi giaodịch - Một giaodịch bị hủy bỏ cách độc lập với giaodịch khác Ưu điểm giaodịch lồng nhau: - Cácgiaodịch mức chạy đồngthời với giaodịch khác mức phân cấp Điều cho phép thêm vào giaodịchđồngthời Khi giaodịch chạy server khác nhau, chúng làm việc song song - Cácgiaodịch xác thực Hủy bỏ độc lập So với giaodịch đơn, tập hợp giaodịch lồng mạnh mẽ Ví Dụ: gửi email cho nhiều người lúc, email không tồn (sai địa chỉ) có mail không đến địa Nghĩa giaodịch thất bại không làm cho toàn giaodịch bị khởi động lại Các quy tắc việc xác thực giaodịch lồng nhau: • Một giaodịch Xác thực Hủy bỏ sau giaodịch hoàn thành • Khi giaodịch hoàn thành, Xác thực tạm thời Hủy bỏ tạm thời • Khi giaodịch cha mẹ bị hủy bỏ, tất giaodịch bị hủy bỏ Ví Dụ, T2 Hủy bỏ T21 T211 Hủy bỏ, chúng Xác thực tạm thời • Nếu giaodịch top-level Xác thực, tất giaodịch mà xác thực tạm thời xác thực thức, miễn không giaodịch bên bị hủy bỏ Ví Dụ, Nếu T Xác thực cho phép T1, T11 T12 Xác thực, T21 T211 không cha mẹ chúng T2 bị Hủy bỏ • Trong nhiều trường hợp, giaodịch top-level định Hủy bỏ nhiều giaodịch bị Hủy bỏ Ví Dụ: Chuyển 100$ từ B tới A: Cộng vào A $100 Trừ $100 từ B Điều cấu trúc cặp giao dịch, cho giaodịch Cộng tiền cho giaodịch trừ tiền hai tài khoản Khi giaodịch xác thực, giaodịch cha xác thực Giả sử giaodịch Trừ tiền B bị Hủy, Giaodịch công tiền xác thực: gọi lại xác thực giaodịch điều kiện cho cha mẹ xác thực Giả sử giaodịch top-level định Hủy bỏ Việc Hủy bỏ cha mẹ gây giaodịch Hủy bỏ giaodịch Cộng tiền bị Hủy bỏ tất việc làm bị undo Kiểmsoát truy cập đồngthời The Lost update problem (Vấn đề liệu cập nhật): - Tình trạng xảy có nhiều giaodịch thực cập nhật đơn vị liệu Khi đó, kết thao tác cập nhật thực sau đè lên kết thao tác cập nhật trước Tài khoản A, B, C có số dư tương ứng $100, $200, $300 Giaodịch T (A => B) Giaodịch U (C => B) Xem số dư tài $200 khoản B Tăng số dư B $200*10 thêm 10% lấy từ A % = $220 Trừ Tài khoản A số $80 Xem số dư tài $220 tiền chuyển vào B khoản B – Còn lại Tăng số dư B $220*10 thêm 10% % = $242 Trừ Tài khoản C số $278 tiền chuyển vào B – Còn lại Khi giaodịch thực đồng thời: Như vậy, tài khoản B cập nhật lần, có số dư $220 thay giá trị phải $242 Số dư tài khoản C $288 thay giá trị $278 Inconsistent retrievals (Truy vấn không phù hợp): Đây tình hoạt động truy vấn hoạt động cập nhật xử lýđồng thời, khiến giaodịch truy cập nhiều lần liệu cho nhiều giá trị khác tài khoản A,B ban đầu có số dư $200, Sau hoạt động trừ $100 từ tài khoản A, Hoạt động tính tổng số dư tài khoản $100+$200=$300 =>điều không xác Hoạt động cộng vào tài khoản B $100, B có $300 Nghĩa là, giaodịch W thực truy vấn giaodịch V thực chuyển số tiền từ tài khoản A sang B chưa hoàn thành Serial equivalence (tuần tự): Đây cách khắc phục tình Mất liệu cập nhật Truy vấn không phù hợp Khi hoạt động không bị xung đột cho phép thực đồngthời Còn ngược lại, phải thực Xong giaodịchgiaodịch thực Khóa - Giaodịch phải lên kế hoạch để tác động lên liệu chia sẻ cách - Một chế đơn giản việc sử dụng khóa - Máy chủ khóa đối tượng sử dụng hoạt độnggiaodịch client - Nếu client khác yêu cầu quyền truy cập vào đối tượng bị khóa yêu cầu bị treo phải chờ đến đối tượng mở khóa - Một máy chủ thường có chứa số lượng lớn đối tượng, giaodịch điển hình truy cập vài số chúng gần không xung đột với giaodịch vãng lai khác - Phạm vi cho truy cập đồngthời đến đối tượng bị hạn chế nghiêm trọng khóa áp dụng cho tất đối tượng lúc - Một cách thích hợp sử dụng khóa để có nhiều giaodịchđồngthời đọc đối tượng, giaodịch ghi đối tượng - Khóa đọc –ghi: cho phép nhiều giaodịch giữ khóa mục liệu, có thao tác ( read –lock, write –lock) - Khóa treo a Quy tắc xung đột hoạt động: Nếu giaodịch T đọc đối tượng giaodịchđồngthời U không ghi lên đối tượng đến T xác nhận hủy bỏ Nếu giaodịch T thực ghi đối tượng giaodịchđồngthời U không đọc hay ghi T xác nhận hủy bỏ Hình ví dụ xung đột hoạt động: cho đối tượng với khóa thiết lập: • None: giaodịch chưa có đối tượng đọc ghi giaodịchđồngthời khác đọc ghi • Read: giaodịch đọc đối tượng giaodịchđồngthời khác đọc không ghi • Write: giaodịch ghi đối tượng giaodịchđồngthời khác đọc ghi đối tượng - Giải vấn đề inconsistent retrieval: Nếu giaodịch đọc đến trước, trì hoãn giaodịch ghi - Giải vấn đề lost update: Mất cập nhật xảy hai giaodịch đọc giá trị đối tượng sau sử dụng để tính toán giá trị Mất cập nhật ngăn ngừa cách làm cho giaodịch sau trì hoãn lần đọc giaodịch trước hoàn thành Điều đạt giaodịch thiết lập khóa đọc đọc đối tượng sau thăng cấpnó thành khóa viết viết đối tượng - giaodịch yêu cầu đọc khóa bị trì hoãn giaodịch hoàn thành Quy sử dụng Khóa: khóa hai pha nghiêm ngặt 1) Khi hành động truy cập đối tượng giao dịch: a) Nếu đối tượng không bị khóa, bị khoá thực thi hành động b) Nếu đối tượng có khóa xung độtvới giaodịch khác, giaodịch phải chờ đợi mở khóa c) Nếu đối tượng có khóa không xung đột với giaodịch khác, khóa chia sẻ thực thi hành động d) Nếu đối tượng bị khóa giao dịch, khóa nâng cấp cần thiết thực thi hành động (Trong trường hợp nâng cấp bị ngăn chặn khóa xung đột, quy tắc b sử dụng.) 2) Khi giaodịch thành công hủy bỏ, máy chủ mở khóa tất đối tượng bị khóa Quy tắc sử dụng khóa cho giaodịch lồng Sử dụng khóa để giaodịch truy cập cách tuần tự: 1) Mỗi tập hợp giaodịch lồng phải ngăn chặn tác độngcủa tập hợp giaodịch lồng khác 2) Mỗi giaodịch tập hợp giaodịch lồng phải ngăn chặn tác độnggiaodịch khác tập hợp Quy tắc thực cách xếp tất khóa mua lại giaodịch thành công, kế thừa cha mẹ nó hoàn thành - Lưu ý hình thức kế thừa truyền từ đến mẹ - Cácgiaodịch kế thừa tất khóa mua lại giaodịch thành công - Điều đảm bảo khóa giữ giaodịch cam kết hủy bỏ, ngăn chặn thành viên giaodịch lồng khác Quy tắc thứ hai thực sau: - Giaodịch mẹ không phép chạy đồngthời với giaodịch Nếu giaodịch mẹ có khóa đối tượng, giữ khóa thời gian giaodịch mà thực Điều có nghĩa giaodịch tạm thời mua lại khóa từ cha mẹ - Cácgiaodịch cấp phép chạy đồng thời, nên chúng truy cập vào đối tượng, chương trình khóa phải theo truy cập chúng 4.1 Deadlocks - Việc sử dụng Khóa dẫn tới Deadlocks - Là trạng thái mà hoạt động nhóm giaodịch chờ đợi để số hoạt động khác phát hành khóa Một đồ thị wait - for sử dụng để đại diện cho mối quan hệgiaodịch Một nút tương ứng với giaodịch hoạt động 10 a.deposit(100); write lock A: Gửi tiền vào A, cấp Khóa cho A b.withdraw(100) : Rút tiền từ B • Giaodịch T: gửi tiền vào A, cấp khóa cho A; lấy tiền từ B • Giaodịch U: gửi tiền vào tài khoản B lấy từ A tài khoản B bị khóa • Trừ tiền tài khoản B B bị khóa nên phải đợi khóa B giaodịch U mở • Trong giaodịch U trừ tiền tài khoản A A bị khóa nên phải đợi khóa A giaodịch T mở Phòng chống Deadlocks - Một cách đơn giản cách tốt nhất, khóa tất đối tượng sử dụng giaodịch bắt đầu - Tuy nhiên, Phương pháp làm hạn chế quyền truy cập vào tài nguyên sử dụng chung Ngoài ra, điều dự đoán vào lúc bắt đầu giaodịch mà đối tượng sử dụng Điều thường trường hợp ứng dụng tương tác, cho người sử dụng phải nói trước cách xác đối tượng mà họ lên kế hoạch sử dụng - Deadlocks ngăn ngừa cách yêu cầu khóa đối tượng trật tự xác định trước, điều dẫn đến khóa sớm làm giảm đồngthời - Các thuật toán WAIT-DIE WOUND- DIE thiết kế dựa gán nhãn thời gian cho giaodịch WAIT-DIE - WOUND- DIE Là thuật toán không tước quyền yêu cầu khóa T i bị từ chối khóa Tj giữ, không tước quyền Tj 11 - Là thuật toán tước quyền khẳng định theo quy tắc sau: Nếu Ti yêu cầu khóa mục liệu Tj khóa Ti phép chờ - - tắc sau: Nếu Ti yêu cầu khóa mục liệu khóa Tj Ti phép chờ khi Ti > Tj Nếu Ti < Tj Ti bị hủy bỏ khởi động lại với nhãn thời gian cũ Quy < Tj Ngược lại Tj bị hủy khóa trao cho Ti Nâng cấp khóa Deadlocks thường gây hai giaodịch xung đột tham gia khóa đọc sau cố gắng thúc đẩy để có khóa ghi Một giaodịch với khóa nâng cấp mục liệu phép đọc, khóa xung đột với ổ khóa nâng cấp thiết lập giaodịch khác mục liệu tương tự Đây loại khóa thiết lập ngầm việc sử dụng hoạt động đọc, phải theo yêu cầu khách hàng Phát Deadlocks - Deadlocks phát cách tìm chu trình đồ thị waitfor Sau phát bế tắc, giaodịch phải bị hủy bỏ để phá vỡ chu trình - Giaodịch T đợi chờ giaodịch U, V Để phá bỏ Deadlock: sau phát - Giaodịch V đợi chờ giaodịch Deadlock, phải phá bỏ giaodịch để phá vỡ chu trình W - Bây xem xét kịch bản: - Giaodịch W đợi chờ giaodịchgiaodịch T, U, V chia sẻ khóa đọc T, U ,V đối tượng C giaodịch W chứa tạo chu trình giaodịch 12 xảy đồngthời khóa ghi đối tượng B, mà giaodịch V chờ đợi để có khóa xảy tình trạng Deadlock - Cácgiaodịch T W sau yêu cầu ghi ổ khóa đối tượng C tình bế tắc phát sinh T đợi U V, V đợi chờ W, chờ đợi W cho T, U, V hình bên trái Điều cho thấy giaodịch đợi chờ cỉ có đối tượng thời gian, tham gia vào nhiều chu trình Ví dụ giaodịch V tham gia vào chu trình: V WT VWT Trong ví dụ này, giả sử vòng giaodịch V bị phá bỏ điều phát hành khóa V C chu trình liên quan V bị phá vỡ Timeouts - Khóa timeout phương pháp để giải bế tắc thường sử dụng - Mỗi khóa cho khoảng thời gian định Sau thời gian này, khóa bị tổn thương Tuy nhiên, giaodịch khác phải chờ đợi để truy cập đối tượng này, khóa bị tổn thương bị hỏng (có nghĩa là, đối tượng mở khóa) giaodịch chờ đợi tiếp tục Cácgiaodịch mà khóa bị phá vỡ thường bị hủy bỏ - Mô tả: Có giaodịch T giaodịch U 13 • Giaodịch T: gửi tiền tài khoản A lấy tiền từ B, cấp khóa cho tài khoản A • Giaodịch U: gửi tiền tài khoản B lấy tiền từ A, cấp khóa cho tài khoản B • Giaodịch T: Trừ tiền tài khoản B B bị khóa phải đợi khóa B giaodịch U mở • Trong giaodịch U: trừ tiền tài khoản A A bị khóa phải đợi khóa A giaodịch T mở Để mở khóa phát sinh thời gian chờ Giaodịch T không chờ đợi dừng Giaodịch U: Rút tiền từ tài khoản A, viết khóa cho A, mở khóa A, B Kiểmsoátđồngthời tin cậy - Kung Robison [1981] xác định số nhược điểm cố hữu khóa đề xuất cách tiếp cận lạc quan thay để tránh nhược điểm Tóm tắt nhược điểm Khóa: • Việc trì khóa phát sinh chi phí giaodịch đọc không ảnh hưởng đến thay đổi liệu • Việc sử dụng khóa dẫn đến DeadLock Phòng chống DeadLock làm giảm khả hoạt độngđồng thời, tình DeadLock phải giải cách sử dụng timeout cách phát DeadLock Nhưng phương pháp hoàn toàn thỏa đáng, để sử dụng hoạt động có tương tác • Khóa phát hành kết thúc giaodịch Điều làm giảm khả hoạt độngđồngthời - Các thuật toán kiểmsoátđồngthời khóa nhãn thời gian giả sử tương tranh giaodịch thường xảy không cho phép giaodịch truy cập mục giaodịch có giaodịch truy cập mục liệu Vì vậy, việc thực thao tác giaodịch phải tuân theo trình theo thứ tự: kiểm tra, đọc, tính toán ghi - Kiểmsoátđồngthời tin cậy làm chậm trình ghi liệu - Các thao tác đọc, tính toán ghi thực tự mà cập nhật vào sở liệu thực - Mỗi giaodịch lúc đầu, cập nhật lên cục bộ, cập nhật kiểm tra có trì tínhnhất quán sở liệu hay không - Nếu quán, thay đổi ghi vào sở liệu thực Ngược lại, giaodịch bị hủy bỏ phải khởi động lại - Khi giaodịchkiểm tra cục để đảm bảo tính quán cục bộ, yêu cầu cần phải kiểm tra toàn cục để đảm bảo tính quán toàn cục Đáng tiếc chưa có phương pháp để kiểm tra việc 14 - Một giaodịchkiểm tra toàn cục, tất giaodịch cục trước kết thúc Phương pháp có phần bi quan thực kiểm tra toàn cục sớm làm trễ giaodịch Tuy nhiên,nó đảm bảo cho giaodịch thực theo thứ tự trạm Các thuật toán điều khiển đồngthời lạc quan cho phép mức độ hoạt độngđồngthời cao Trong trường hợp tương tranh giaodịch xảy ra, chế lạc quan thực hiệu chế khóa - Nhược điểm chủ yếu thuật toán lạc quan chi phí lưu trữ cao Nhãn thời gian (Timestamp) - Trong đề án kiểmsoátđồngthời dựa thứ tự nhãn thời gian, hoạt độnggiaodịch xác nhận thực Nếu hoạt động xác nhận, việc giaodịch bị hủy bỏ sau khởi động lại client Mỗi giaodịch gán nhãn thời gian bắt đầu - Các nhãn thời gian xác định vị trí trình tự thời gian giaodịch - Thứ tự yêu cầu từ giaodịch hoàn toàn theo nhãn thời gian chúng - Các quy tắc cấp nhãn thời gian dựa hoạt động xung đột: • Yêu cầu giao dịch, để Ghi đối tượng hợp lệ lần đọc đối tượng lần đọc cuối ghi giaodịch trước • Yêu cầu giaodịch để đọc đối tượng hợp lệ đối tượng ghi giaodịch trước - Nếu giaodịch có phiên dự kiến riêng đối tượng mà truy cập, nhiều giaodịchđồngthời truy cập đối tượng - Các quy tắc đặt nhãn thời gian đảm bảo giaodịch truy cập tập phiên đối tượng Nó phải đảm bảo phiên dự kiến đối tượng xác thực theo thứ tự xác định nhãn thời gian giaodịch thực chúng - Cácgiaodịch chờ đợi, chờ giaodịch trước hoàn tất việc ghi chúng cần thiết Các hoạt động ghi thực sau hoạt độngđóng lại Hoạt động đọc cần phải chờ đợi cho giaodịch trước kết thúc Điều khôngdẫn đến Deadlock, giaodịch chờ đợi giaodịch trước (không thể có chu trình đồ thị wait-for) - Mỗi đối tượng có nhãn thời gian ghi thiết lập phiên thử nghiệm, có nhãn thời gian ghi liên kết với nó; đối tượng có tập hợp nhãn thời gian đọc - Các nhãn thời gian ghi đối tượng xác thực sớm so với phiên dự kiến nó, tập nhãn thời gian đọc biểu diễn thành viên lớn 15 - Khi hoạt động ghi giaodịch đối tượng chấp nhận, máy chủ tạo phiên dự kiến đối tượng với nhãn thời gian ghi nhãn thời gian giaodịch - Hoạt động đọc giaodịch dẫn đến phiên có nhãn thời gian ghi lớn so với nhãn thời gian giaodịch - Khi hoạt động đọc giaodịch đối tượng chấp nhận, nhãn thời gian giaodịch thêm vào tập nhãn thời gian đọc - Khi giaodịch xác thực, giá trị phiên dự kiến trở thành giá trị đối tượng, nhãn thời gian phiên dự kiến trở thành nhãn thời gian đối tượng tương ứng a Các hoạt động xung đột nhãn thời gian:được mô tả qua luật - Trong timestamp, yêu cầu giaodịch cho hoạt động đọc ghi đối tượng kiểm tra xem liệu có phù hợp với quy tắc hoạt động xung đột Một yêu cầu giaodịch T c xung đột với hoạt động trước thực giaodịch khác, T i, mà nhãn thời gian chúng cần phải muộn T c Các quy tắc thể bảng đây, Ti > Tc nghĩa Ti muộn Tc Ti < Tc nghĩa Ti sớm Tc Luật Tc Write Ti Read - Write Write - Read Write - Tc ghi lên đối tượng mà đọc Ti có Ti > Tc ( nghĩa Ti xảy muộn Tc) Điều đòi hỏi Tc >= nhãn thời gian đọc tối đa đối tượng Tc không ghi đối tượng mà ghi Ti, có Ti > Tc Điều đòi hỏi Tc > nhãn thời gian ghi cuả đối tượng xác thực Tc không đọc đối tượng mà ghi Ti, có Ti > Tc Điều đòi hỏi Tc > nhãn thời gian ghi cuả đối tượng xác thực b Quy tắc ghi: cách kết hợp luật 2, có quy tắc sau để định có nên chấp nhận hoạt động ghi theo yêu cầu giaodịch T c đối tượng D: - Nếu ( Tc >= nhãn thời gian lớn D Tc > nhãn thời gian ghi phiên xác thực D) Thực hoạt động ghi phiên dự kiến D với nhãn thời gian ghi T c Ngược lại: hủy bỏ giaodịch Tc //ghi muộn 16 - Nếu phiên dự kiến có nhãn thời gian ghi T c tồn tại, hoạt động ghi gửi đến nó; không, phiên dự kiến tạo có nhãn thời gian ghi Tc - Ví dụ hình 16.30 mô tả quy tắc ghi nhãn thời gian: - Hình minh họa hoạt động hoạt động ghi giaodịch T trường hợp T3 >= nhãn thời gian đọc lớn đối tượng (các nhãn thời gian đọc không hiển thị) • Trường hợp (a), (b) : T > nhãn thời gian ghi phiên xác thực đối tượng giaodịch thực • Trường hợp (c): T3 > nhãn thời gian ghi phiên dự kiến nhãn thời gian T3 chèn vào vị trí thích hợp danh sách phiên dự kiến xếp theo thời gian giaodịch chúng • Trường hợp (d): T3 < nhãn thời gian ghi phiên xác thực đối tượng giaodịch bị hủy bỏ c Quy tắc đọc: cách sử dụng quy tắc 3, có quy tắc đọc sau để định có nên chấp nhận lập tức, chờ đợi từ chối hoạt động đọc theo yêu cầu giaodịch Tc đối tượng D: - Nếu ( Tc > nhãn thời gian ghi phiên xác thực D { Để D lựa chọn phiên D với nhãn thời gian ghi tối đa Tc Nếu (D lựa chọn xác thực) Thực hoạt động đọc phiên D lựa chọn Ngược lại: 17 Chờ đợi giaodịch làm cho phiên D lựa chọn xác thực hủy bỏ sau áp dụng lại quy tắc đọc } - Ngược lại hủy bỏ giaodịch Tc - Chú ý: • Nếu giaodịch Tc viết phiên riêng đối tượng, chúng sử dụng • Một hoạt động đọc mà đến sớm phải đợi cho giaodịch trước hoàn thành Nếu giaodịch trước xác thực, Tc đọc từ phiên xác thực Nếu hủy bỏ, Tc lặp lại quy tắc đọc (và chọn phiên trước đó) • - Một hoạt động đọc mà đến muộn nghĩa giaodịch với nhãn thời gian sau ghi đối tượng Hình minh họa quy tắc đọc bao gồm trường hợp có gắn nhãn từ (a) (d), trường hợp minh họa cho đối tượng đọc giaodịch T3 Trong trường hợp, phiên có nhãn thời gian ghi T3 chọn Nếu phiên tồn tại, định với đường 18 • Trong trường hợp(a), (b) hoạt động đọc chuyển đến phiên xác thực – (a) phiên nhất, (b) có phiên dự kiến thuộc giaodịch sau • Trong trường hợp (c) hoạt động đọc chuyển đến phiên dự kiến phải chờ đến giaodịch cam kết hủy bỏ • Trong trường hợp (d) phiên phù hợp để đọc giaodịch T3 bị hủy bỏ 19 ... giao dịch top-level Các giao dịch khác nhỏ giao dịch toplevel gọi giao dịch - Một giao dịch bị hủy bỏ cách độc lập với giao dịch khác Ưu điểm giao dịch lồng nhau: - Các giao dịch mức chạy đồng thời. .. hết thời gian chờ Nếu máy chủ bị lỗi, giao dịch không giá trị khách hàng phải thực giao dịch Giao dịch lồng - Giao dịch lồng giao dịch bao gồm số giao dịch khác - Giao dịch giao dịch lồng gọi giao. .. None: giao dịch chưa có đối tượng đọc ghi giao dịch đồng thời khác đọc ghi • Read: giao dịch đọc đối tượng giao dịch đồng thời khác đọc không ghi • Write: giao dịch ghi đối tượng giao dịch đồng thời