<< Chapter < Page Chapter >> Page >

Schedule-9

figure IV-

Nó tương đương view với lịch trình tuần tự<T3, T4, T6>do chỉ thị Read(Q) đọc giá trị khởi đầu của Q trong cả hai lịch trình và T6 thực hiện Write sau cùng trong cả hai lịch trình như vậy schedule-9 khả tuần tự view.

Mỗi lịch trình khả tuần tự xung đột là khả tuần tự view, nhưng có những lịch trình khả tuần tự view không khả tuần tự xung đột (ví dụ schedule-9).

Trong schedule-9 các giao dịch T4 và T6 thực hiện các hoạt động Write(Q) mà không thực hiện hoạt động Read(Q), Các Write dạng này được gọi là các Write mù (blind write). Các Write mù xuất hiện trong bất kỳ lịch trình khả tuần tự view không khả tuần tự xung đột.

Tính khả phục hồi (recoverability)

Ta đã nghiên cứu các lịch trình có thể chấp nhận dưới quan điểm sự nhát quán của CSDL với giả thiết không có giao dịch nào thất bại. Ta sẽ xét hiệu quả của thất bại giao dịch trong thực hiện cạnh tranh.

Nếu giao dịch Ti thất bại vì lý do nào đó, ta cần huỷ bỏ hiệu quả của giao dịch này để đảm bảo tính nguyên tử của giao dịch. Trong hệ thống cho phép thực hiện cạnh tranh, cũng cần thiết đảm bảo rằng bất kỳ giao dịch nào phụ thuộc vào Ti cũng phải bị bỏ. Để thực hiện sự chắc chắn này, ta cần bố trí các hạn chế trên kiểu lịch trình được phép trong hệ thống.

Lịch trình khả phục hồi (recoverable schedule)

Xét lịch trình schedule-10 trong đó T9 là một giao dịch chỉ thực hiện một chỉ thị Read(A). Giả sử hệ thống cho phép T9 bàn giao (commit) ngay sau khi thực hiện chỉ thị Read(A). Như vậy T9 bàn giao trước T8 . Giả sử T8 thất bại trước khi bàn giao, vì T9 vì T9 đã đọc giá trị của hạng mục giữ liệu A được viết bởi T8 , ta phải bỏ dở T9 để đảm bảo tính nguyên tử giao dịch. Song T9 đã được bàn giao và không thể bỏ dở được. Ta có tình huống trong đó không thể khôi phục đúng sau thất bại của T8 .

Schedule-10

figure IV-

Lịch trình schedule-10 là một ví dụ về lịch trình không phục hồi được và không dược phép. Hầu hết các hệ CSDL đòi hỏi tất cả các lịch trình phải phục hồi được. Một lịch trình khả phục hồi là lịch trình trong đó, đối với mỗi cặp giao dịch Ti , Tj , nếu Tj đọc hạng mục dữ liệu được viết bởi Ti thì hoạt động bàn giao của Tj phải xảy ra sau hoạt động bàn giao của Ti .

Lịch trình cascadeless (cascadeless schedule)

Ngay cả khi lịch trình là khả phục hồi, để phục hồi đúng sau thất bại của một giao dịch Ti ta phải cuộn lại một vài giao dịch. Tình huống như thế xảy ra khi các giao dịch đọc dữ liệu được viết bởi Ti . Ta xét lich trình schedule-11 sau

Schedule-11

figure IV-

Giao dịch T10 viết một giá trị được đọc bởi T11 . Giao dịch T12 đọc một giá trị được viết bởi T11 . Giả sử rằng tại điểm này T10 thất bại. T10 phải cuộn lại, do T11 phụ thuộc vào T10 nên T11 cũng phải cuộn lại và cũng như vậy với T12. Hiện tượng trong đó một giao dịch thất bại kéo theo một dãy các giao dịch phải cuộn lại được gọi là sự cuộn lại hàng loạt (cascading rollback).

Cuộn lại hàng loạt dẫn đến việc huỷ bỏ một khối lượng công việc đáng kể. Phải hạn chế các lịch trình để việc cuộn lại hàng loạt không thể xảy ra. Các lịch trình như vậy được gọi là các lịch trình cascadeless. Một lịch trình cascadeless là một lịch trình trong đó mỗi cặp giao dịch Ti , Tj nếu Tj đọc một hạng mục dữ liệu được viết trước đó bởi Ti, hoạt động bàn giao của Ti phải xuất hiện trước hoạt động đọc của TJ . Một lịch trình cascadeless là khả phục hồi.

Get Jobilize Job Search Mobile App in your pocket Now!

Get it on Google Play Download on the App Store Now




Source:  OpenStax, Hệ quản trị cơ sở dữ liệu. OpenStax CNX. Jul 31, 2009 Download for free at http://cnx.org/content/col10838/1.1
Google Play and the Google Play logo are trademarks of Google Inc.

Notification Switch

Would you like to follow the 'Hệ quản trị cơ sở dữ liệu' conversation and receive update notifications?

Ask