2012-04-09 21 views
9

Tôi không biết đây có phải là câu hỏi thích hợp không.Làm thế nào để hiểu "Tính khả dụng" của định lý CAP?

Như chúng ta đã biết, trong định lý CAP, "A" có nghĩa là "Tính khả dụng". Trên wikipedia, những giải thích về "Sẵn có" là:

Availability: a guarantee that every request receives a response about whether it was successful or failed 

Tuy nhiên, từ quan điểm của kỹ thuật, không có ABSOLUTE sẵn có. Chúng tôi chỉ có thể nói rằng sự sẵn có của một hệ thống là 5'9 '(99,999%), hoặc thậm chí 8'9', nhưng chúng tôi không thể nói rằng sự sẵn có của một hệ thống là 100%, 100% hệ thống có sẵn không xuất hiện trong thực tế , ngay cả khi hệ thống có hàng triệu nút trùng lặp, phải không?

Định lý CAP chứng minh rằng không có hệ thống nào có thể đáp ứng 3 yêu cầu cùng một lúc. Câu hỏi của tôi là, nếu một hệ thống tuyên bố thỏa mãn cả "A" và "P", thì ý nghĩa chính xác của "A" này là gì? 6'9 'hoặc thậm chí cao hơn?

+0

Đây là off-topic cho SO; có lẽ thuộc về [cstheory.se] –

Trả lời

10

Tôi khuyên bạn nên tránh Wikipedia và thay vào đó đọc định nghĩa như được cung cấp bằng chứng bởi Gilbert and Lynch.

"mọi yêu cầu nhận được một không thất bại nút trong hệ thống phải kết quả trong một phản ứng"

Và chú thích liên quan mà trả lời câu hỏi của bạn

"Brewer ban đầu chỉ yêu cầu gần như tất cả các yêu cầu để nhận được một phản hồi . Vì cho phép tính khả dụng xác suất không thay đổi kết quả khi thất bại tùy ý xảy ra, vì đơn giản chúng tôi yêu cầu 100% sẵn sàng"

Vì vậy, nếu hầu hết các yêu cầu nhận được phản hồi hoặc chúng tôi cho phép thất bại tùy ý để xảy ra, một hệ thống có thể được coi là có tính sẵn sàng cao.

2

Tính khả dụng trong CAP có nghĩa là "Tất cả (không có lỗi) nút có sẵn cho truy vấn". Nó có NOTHING để làm với liên kết Wikipedia, đó là về "Tính sẵn sàng cao".

Ví dụ: thuật toán PAXOS là CP (không có thuộc tính Tính khả dụng) vì các nút thiểu số "tắt" trong một phân vùng. Nhưng nếu bạn cần nhất quán, thì PAXOS được coi là "Tính sẵn sàng cao".

Ngược lại, một máy chủ cơ sở dữ liệu MySQL một nút là CA (có thuộc tính Khả dụng CAP). Nó có thể khởi động lại (và được xuống cho giờ trong khi nó không kiểm tra BIOS, FileSystem kiểm tra, DB Repair, vv). Khi nó kết thúc khởi động, nó bắt đầu trả lời các truy vấn một lần nữa. Đó là tính sẵn sàng hoàn hảo (theo định lý CAP), nhưng tính sẵn sàng khủng khiếp cho "Tính sẵn sàng cao".

+0

Điều này được giải thích trực quan tại đây http://guide.couchdb.org/editions/1/en/consistency.html#figure/1 – user454322

1

Tôi đồng ý với Mark Burgess: The CAP Theorem Is Not a Theorem. Các tính chất CAP trong phỏng đoán của Brewer chỉ đơn giản là không được xác định đủ để cung cấp một bằng chứng toán học nghiêm ngặt. Vì vậy, lý do sẵn có khó hiểu là có thể bởi vì nó đơn giản là không được xác định rõ trong bối cảnh này.

0

Một điểm thú vị của xem bằng cách Coda Hale

Một hệ thống cho phép lựa chọn Availability sẽ xử lý một phân vùng mạng bằng cách tiếp tục phục vụ mọi yêu cầu ngay cả khi họ dẫn đến mâu thuẫn (ví dụ như các nút trong phân vùng mạng khác nhau cả hai chấp nhận có thể là mâu thuẫn viết).

Hệ thống chọn Nhất quán sẽ giới hạn số lượng hoạt động pháp lý trong phân đoạn mạng (ví dụ: viết không được chấp nhận vì chúng có thể dẫn đến mâu thuẫn/mâu thuẫn).

Không thể chọn cả hai.

Tôi cho rằng một hệ thống giả cũng có thể chọn để chỉ sụp đổ trong phân vùng mạng nhưng điều này không có vẻ như một thiết kế rất thực tế ...

Các vấn đề liên quan