Теорема CAP (также известная как теорема Брюэра) утверждает, что распределённая система может одновременно гарантировать только два из трёх свойств:
На практике сетевые разделения неизбежны в распределённых системах. Это означает, что разработчики должны выбирать между согласованностью и доступностью при возникновении разделения — а не решать, поддерживать ли вообще устойчивость к разделению.
Различные NoSQL базы данных делают разные компромиссы:
MongoDBCassandraMongoDB по умолчанию является CP базой данных. Это достигается через:
Это означает, что во время сетевого разделения MongoDB будет ставить точность данных выше доступности, отказывая в обработке запросов, если гарантированный согласованный ответ невозможен.
Понимание компромиссов CAP помогает инженерам выбрать правильную базу данных под свой use case — системы, требующие строгой точности данных (например, финансовые транзакции), выигрывают от CP баз данных вроде MongoDB, тогда как сценарии с высокими требованиями к доступности могут склоняться в сторону AP альтернатив.
Теорема CAP гласит, что распределённые системы должны пожертвовать одним из трёх свойств: консистентностью, доступностью или устойчивостью к разделению сети, что делает устойчивость к разделению опциональной в проектировании системы.
Новый — ещё не проверен сообществом
Вы