Что такое CAP-теорема?

CAP-теорема (теорема Брюера) является основополагающим принципом в распределенных системах и базах данных. Теорема утверждает, что в распределенной системе невозможно одновременно обеспечить три следующих свойства:

  1. C (Consistency – Согласованность):
    • Все узлы в системе видят одни и те же данные одновременно. Если один узел внес изменение в данные, другие узлы тут же видят это изменение.
  2. A (Availability – Доступность):
    • Каждый запрос к системе завершается успешно без ошибок, даже в условиях отказа узлов. Всегда есть отклик на запрос.
  3. P (Partition Tolerance – Устойчивость к разделению):
    • Система продолжает функционировать даже в условиях разделения (потери связи) между узлами. Разделение может произойти из-за отказов сети.

CAP-теорема утверждает, что в случае разделения сети (P) вынуждены выбирать между согласованностью (C) и доступностью (A). Невозможно обеспечить оба эти свойства одновременно в условиях разделения.

Если система стремится к согласованности, она может быть менее доступной в условиях разделения, так как все узлы должны видеть одни и те же данные. Если система стремится к доступности, она может позволить разным узлам иметь разные данные в условиях разделения, но это может привести к несогласованным данным.

Многие распределенные системы и базы данных выбирают компромисс между этими свойствами, и такие системы иногда описывают как CA, CP или AP в зависимости от того, на какие из трех свойств они делают упор.