Cam ket 3 pha

Màu nền
Font chữ
Font size
Chiều cao dòng

Cam kết 3 pha:

- Thêm trạng thái PRECOMMIT:

+ Khi tiến trình điều phối nhận được thông báo VOTE_COMMIT từ tất cả các tiến trình thành viên nó sẽ phát thông báo PREPARE_COMMIT tới tất cả các thành viên.

+ Các tiến trình thành viên ở trạng thái READY, khi nhận được thông báo PREPARE_COMMIT thì đáp ứng lại thông báo READY_COMMIT tới tiến trình điều phối.

+ Khi nhận được phản hòi READY_COMMIT từ tất cả thành viên trong nhóm, tiến trình điều phối sẽ phát thông báo GLOBAL_COMMIT và bước vào trạng thái COMMIT

- Khi tiến trình điều phối ở trạng thái PRECOMMIT, nếu thời gian timeout đã hết mà còn thành viên nào đó chưa phản hồi thì nó vẫn chuyển sang trạng thái COMMIT bởi vì nó đã chắc chắn được rằng thành viên đó đã đáp ứng bằng thông điệp VOTE_COMMIT trước khi bị lỗi. Và cuối cùng thì khi tiến trình thành viên lỗi được khôi phục nó cũng bước vào trạng thái COMMIT.

- Trạng thái PRECOMMIT còn đảm bảo một tiến trình thành viên luôn quyết định được bước chuyển của nó một cách an toàn

+ Khi tham vấn thành viên Q, Q chỉ ở trạng thái INIT khi và chỉ khi không có thành viên nào khác nằm ở trạng thái PRECOMMIT.

+ Nếu tất cả các thành viên P tham vấn đều ở trạng thái READY thì giao tác bị loại bỏ.

+ Khi P là một tiến trình lỗi được khôi phục lại, nếu tồn tại tiến trình thành viên khác ơ trạng thái READY thì trạng thái của P chỉ có thể là INIT, ABORT hoặc PRECOMMIT.

+ Nếu tồn tại một thành viên ở trạng thái PRECOMMIT thì các thành viên khác khi được khôi phục lại sẽ nằm ở một trong 3 trạng thái READY, PRECOMMIT và COMMIT

*Chú ý : cam kết 3 pha chỉ được đề cập nhiều trong lý thuyết còn thực tế cam kết 2 pha vẫn được sử dụng rộng rãi hơn. Cam kết 3 pha chỉ cho thấy khả năng chịu lỗi của hệ phân tán

Bạn đang đọc truyện trên: Truyen2U.Pro

#study