Định lý CAP

Bách khoa toàn thư mở Wikipedia

Định lý CAP là một định lý được áp dụng trong lý thuyết khoa học máy tính. Còn có tên là Định lý của Brewer sau khi nhà khoa học Eric Brewer, nói rằng không thể lưu trữ dữ liệu phân tán đồng thời cung cấp hơn hai trong số ba yếu tố sau đây[1]

Tính nhất quán Tính khả dụng Dung sai phân vùng
Mỗi lần đọc dữ liệu, sẽ nhận được nội dung mới nhất hoặc lỗi. Tất cả các node phải có dữ liệu đồng nhất với nhau. Tính sẵn sàng hoạt động của các node. Hệ thống có thể vẫn hoạt động được khi một số node bị chết hoặc không sẵn sàng. Trạng thái hoạt động của hệ thống khi đường kết nối (mạng) giữa các node bị đứt, hay còn gọi là khả năng chịu lỗi của hệ thống. Hệ thống vẫn phải hoạt động bình thường cho dù các kết nối của các node trong hệ thống bị đứt gãy.

Nói cách khác, định lý CAP chỉ ra rằng trong sự hiện diện của một phân vùng mạng, người ta phải lựa chọn giữa tính nhất quán và tính khả dụng. Lưu ý rằng tính nhất quán như định nghĩa trong định lý CAP khá khác so với sự nhất quán được đảm bảo trong các giao dịch cơ sở dữ liệu ACID.

Không có hệ thống phân tán nào được an toàn trước các sự cố mạng, do đó phân vùng mạng thường phải có dung sai. Nếu ta có sự hiện diện của một phân vùng, thì sau đó sẽ loại một trong hai yếu tố còn lại: Tính nhất quán hoặc sẵn có. Khi chọn độ nhất quán về tính khả dụng, hệ thống sẽ trả lại lỗi hoặc thời gian chờ nếu thông tin cụ thể không thể đảm bảo được cập nhật do phân vùng mạng. Khi chọn tính sẵn có qua tính nhất quán, hệ thống sẽ luôn luôn xử lý truy vấn và cố gắng trả lại phiên bản hiện có của thông tin, ngay cả khi nó không thể đảm bảo nó được cập nhật do phân vùng mạng[2].

Trong trường hợp Lỗi mạng - đó là, khi hệ thống phân phối chạy bình thường - có thể thỏa mãn cả tính sẵn có và tính nhất quán.

CAP thường bị hiểu nhầm rằng ta chỉ có thể đảm bảo hai trong ba yếu tố và phải từ bỏ yếu tố còn lại. Trên thực tế, sự lựa chọn thực sự giữa tính nhất quán và tính khả dụng chỉ khi phân vùng mạng hoặc lỗi xảy ra; ở tất cả các trường hợp khác, không cần phải đánh đổi bất kỳ yếu tốt nào.

Các hệ thống cơ sở dữ liệu được thiết kế với các đảm bảo ACID truyền thống như RDBMS chọn sự nhất quán về tính khả dụng, trong khi các hệ thống được thiết kế dựa trên lý thuyết BASE, ví dụ như trong các mô hình về NoSQL.

Tham khảo[sửa | sửa mã nguồn]

  1. ^ “Brewer's CAP Theorem, julianbrowne.com, Retrieved 02-Mar-2010”.
  2. ^ “Greiner, Robert. "CAP Theorem: Revisited". Robertgreiner.com. Retrieved 2016-09-02”.

Liên kết ngoài[sửa | sửa mã nguồn]