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ênKhi phân vùngVí dụ
CPNhất quánTừ 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
APKhả dụngVẫn phục vụ, chấp nhận dữ liệu lệch tạm thờiNoSQL (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