Xác nhận hai pha (khoa học máy tính)

Trong lĩnh vực cơ sở dữ liệu, xác nhận hai pha (tiếng Anh: two-phase commit protocol, hay 2PC) là một thuật toán phân tán đảm bảo các nút khác nhau của một hệ thống phân tán xác nhận một giao dịch.

Trong quá trình xác nhận, nếu một trong các nút của hệ thống phủ nhận giao dịch thì toàn bộ giao dịch sẽ bị hủy bỏ. Giao dịch chỉ được hoàn thành khi tất cả các nút của hệ thống xác nhận nó.

Quá trình xác nhận bao gồm 2 pha là:

- Gửi yêu cầu: nút điều phối (coordinator) gửi câu truy vấn yêu cầu xác nhận giao dịch tới tất cả các nút tham gia, sau đó đợi trả lời từ các nút đó.

- Xác nhận giao dịch: khi nút điều phối nhận được trả lời đồng ý của tất cả các nút tham gia, nó sẽ gửi lại thông điệp xác nhận tới tất cả các nút tham gia một lần nữa để hoàn tất việc giao dịch, và giao dịch đó được xác nhận thành công. Trong trường hợp nút điều phối nhận được ít nhất một trả lời phủ định giao dịch từ một nút tham gia nào đó, hoặc nếu sau khoảng thời gian nhất định vẫn chưa nhận được toàn bộ trả lời từ các nút tham gia, thì nút điều phối sẽ gửi thông điệp hủy bỏ việc xác nhận tới tất cả các nút tham gia, và việc xác nhận giao dịch thất bại.

Tham khảo sửa