Читая Визуальное руководство Натана Хёрста по системам NoSQL, он включает в себя треугольник CAP
:
C
onsistency A
vailibilityP
artition Tolerance, в котором SQL Server является системой AC
, а MongoDB - системой CP
.
Эти определения пришли от UC Berkley профессора Эрика Брюера, и его доклад на PODC 2000 (Принципы распределенных вычислений):
Доступность
Доступность означает только то, что - сервис доступен. (работать полностью или не так, как указано выше). Когда вы покупаете книгу, вы хотите получить ответ, а не какое-нибудь сообщение браузера о том, что веб-сайт является необщительный. Гилберт и Линч в своем доказательстве CAP Theorem сделали хорошая новость в том, что доступность чаще всего покидает вас, когда вы в ней нуждаетесь. в большинстве случаев - сайты имеют тенденцию опускаться в напряженные периоды именно потому, что они заняты. Услуга, которая доступна, но к которой нет доступа, не является на пользу любому.
Что значит, в контексте MongoDB, или BigTable, что система не "доступна"?
Вы подключаетесь (например, по TCP/IP), а сервер не отвечает? Пытаетесь ли вы выполнить запрос, но он никогда не возвращается - или возвращает ошибку?
Что значит - быть недоступным?