Tính sẵn sàng và tính nhất quán
Định lý CAP
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.
