Skip to content

Tính sẵn sàng và tính nhất quán ​

Định lý CAP ​


Nguồn: CAP theorem revisited

Trong một hệ thống máy tính phân tán, bạn chỉ có thể đảm bảo hai trong ba điều sau:

  • Tính nhất quán - Mọi lần đọc đều nhận được bản ghi mới nhất hoặc một lỗi
  • Tính sẵn sàng - Mọi request đều nhận được response, nhưng không đảm bảo response chứa phiên bản thông tin mới nhất
  • Khả năng chịu phân vùng - Hệ thống vẫn tiếp tục hoạt động dù mạng bị phân vùng tuỳ ý do lỗi mạng

Mạng không đáng tin cậy, vì vậy bạn cần hỗ trợ khả năng chịu phân vùng. Bạn sẽ phải đánh đổi giữa tính nhất quán và tính sẵn sàng ở tầng phần mềm.

CP - tính nhất quán và khả năng chịu phân vùng ​

Chờ response từ node bị phân vùng có thể gây lỗi timeout. CP là lựa chọn tốt nếu nghiệp vụ của bạn đòi hỏi đọc và ghi mang tính atomic.

AP - tính sẵn sàng và khả năng chịu phân vùng ​

Response trả về phiên bản dữ liệu sẵn có nhất trên bất kỳ node nào, và có thể không phải bản mới nhất. Việc ghi có thể cần một khoảng thời gian để lan truyền sau khi phân vùng được khắc phục.

AP là lựa chọn tốt nếu nghiệp vụ cho phép eventual consistency hoặc khi hệ thống cần tiếp tục hoạt động bất chấp các lỗi bên ngoài.

Nguồn và đọc thêm ​