TGViewer
METANIT.COM METANIT.COM @devnull22 · 5.81K subscribers
Post #1755 1.94K
Теорема CAP
(объяснение к предыдущему посту)

В распределённой системе невозможно получить всё сразу. Приходится идти на компромиссы.

Теорема CAP утверждает, что распределённая система в любой момент времени может гарантировать только два из трёх следующих свойств:

1. C — Согласованность (Consistency)
* Каждое чтение получает самые свежие записи или ошибку. Отсутствия устаревших данных.
* Большинство SQL-баз данных (например, PostgreSQL, MySQL) оптимизированы для строгой согласованности.

2. A — Доступность (Availability)
* Каждый запрос получает ответ, даже если данные могут быть не самыми актуальными.
* NoSQL-базы данных, такие как DynamoDB и Cassandra, часто отдают приоритет доступности над строгой согласованностью.

3. P — Отказоустойчивость при разделении (Partition Tolerance)
* Система продолжает работать даже при разделении сети (то есть при нарушении связи между узлами).
* Все реальные распределённые системы должны быть устойчивы к разделению.

Компромисс: выберите любые два

1. CP (Согласованность + Отказоустойчивость)
* Приоритет отдаётся точности данных. Система может отклонять запросы во время сетевых проблем для поддержания согласованности.

2. AP (Доступность + Отказоустойчивость)
* Приоритет отдаётся доступности. Система продолжает отвечать на запросы, даже если данные могут быть временно несогласованными.

3. CA (Согласованность + Доступность)
* Выглядит отлично на бумаге, но недостижимо в реальных распределённых системах, поскольку сетевые разделения неизбежны.

За пределами CAP: теорема PACELC

В то время как CAP фокусируется на поведении при сетевых сбоях, она игнорирует то, что происходит, когда система работает нормально.

Здесь на помощь приходит PACELC:
* Если происходит разделение (P) → вы выбираете между доступностью (A) и согласованностью (C)
* В противном случае (E) → вы выбираете между задержкой (L) и согласованностью (C)

Эта теорема признаёт, что даже когда система работает нормально, существует компромисс между задержкой и согласованностью.
  • ❤ 10
  • ✍ 3
  • 👍 3
More from @devnull22
  1. Mar 19, 2026Добавил в руководство по JavaScript главу про работу с датами и временем с помощью Tempora…
  2. Mar 19, 2026Роскомнадзор перестал полностью справляться с блокировками в интернете Роскомнадзор (РКН)…
  3. Mar 18, 2026Минцифры опубликовало законопроект о государственном регулировании ИИ. Закон должен начать…
  4. Mar 18, 2026Microsoft призвала разработчиков создавать ИИ-приложения в Electron на Windows 11 Microsof…
  5. Mar 18, 2026Oracle анонсировала проект Detroit, который будет развиваться в составе OpenJDK и нацелен…
  6. Mar 17, 2026Вышла новая версия платформы Java - JDK 26. JDK 26 — краткосрочная версия с поддержкой Pre…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →