Теорема CAP — один из самых известных терминов в информатике, но я уверен, что разные разработчики понимают его по-разному. Давайте рассмотрим, что это такое и почему это может сбивать с толку.
Теорема CAP гласит, что распределенная система не может обеспечить более двух из этих трех гарантий одновременно.
Согласованность: согласованность означает, что все клиенты видят одни и те же данные в одно и то же время, независимо от того, к какому узлу они подключаются.
Доступность: доступность означает, что любой клиент, запрашивающий данные, получает ответ, даже если некоторые узлы не работают.
Допуск к разделению: раздел указывает на разрыв связи между двумя узлами. Допуск к разделению означает, что система продолжает работать, несмотря на сетевые разделы.
Формулировка “2 из 3” может быть полезной, но это упрощение может ввести в заблуждение.
- Выбрать базу данных непросто. Обосновать наш выбор исключительно на основе теоремы CAP недостаточно. Например, компании не выбирают Cassandra для приложений чата просто потому, что это система AP. Существует список хороших характеристик, которые делают Cassandra желательным вариантом для хранения сообщений чата. Нам нужно копать глубже.
- “CAP ограничивает лишь крошечную часть дизайнерского пространства: идеальная доступность и согласованность при наличии перегородок, которые встречаются редко”. Цитируется по статье: CAP Двенадцать лет спустя: Как изменились “Правила”.
- Теорема заключается в 100% доступности и согласованности. Более реалистичным обсуждением был бы компромисс между задержкой и согласованностью при отсутствии сетевого раздела. Смотрите теорему ПЕЙСЕЛКА для получения более подробной информации.
Действительно ли теорема CAP полезна?
Я думаю, что это все еще полезно, поскольку открывает наши умы для ряда компромиссных дискуссий, но это только часть истории. Нам нужно копать глубже при выборе правильной базы данных.
Если вам понравился этот пост из новостной рассылки ByteByteGo, почему бы не поделиться им?