CAP Theorem (Định lý CAP)
Một hệ phân tán KHÔNG thể đảm bảo đồng thời cả ba: Consistency, Availability, Partition tolerance - chỉ chọn được tối đa hai trong ba.
- C - Consistency: mọi lần đọc nhận dữ liệu mới nhất (hoặc lỗi).
- A - Availability: mọi yêu cầu nhận được phản hồi (dù dữ liệu có thể không mới nhất).
- P - Partition tolerance: hệ thống vẫn hoạt động dù kết nối mạng giữa các node bị gián đoạn.
Trong thực tế: chọn CP hay AP
Vì lỗi phân vùng mạng (P) sớm muộn cũng xảy ra và không tránh được, các kỹ sư coi P là bắt buộc. Khi phân vùng xảy ra, phải đánh đổi giữa C và A:
| Ưu tiên | Khi phân vùng | Ví dụ | |
|---|---|---|---|
| CP | Nhất quán | Từ chối/trả lỗi thay vì để dữ liệu sai (giảm khả dụng) | Ngân hàng, SQL truyền thống |
| AP | Khả dụng | Vẫn phục vụ, chấp nhận dữ liệu lệch tạm thời | NoSQL (BASE), mạng xã hội |
Ví dụ đời thường
Hai cửa hàng chung kho, mất mạng giữa hai bên:
- Muốn kho nhất quán → ngừng bán một bên đến khi nối lại (mất doanh thu, dữ liệu an toàn).
- Muốn tiếp tục bán → mỗi bên dùng dữ liệu riêng, có thể bán trùng laptop cuối cùng (dữ liệu lệch, xử lý sau).
Không giải pháp nào hoàn hảo - đây chính là đánh đổi CAP.
Liên quan
- Consistency vs Availability - hai cực C và A của định lý
- Consistency Models - CP↔strong, AP↔eventual
- SQL vs NoSQL - SQL nghiêng CP, NoSQL nghiêng AP
- Quorum · Replication - công cụ điều chỉnh trong CAP