Изменения документа CAP теорема

Редактировал(а) Alexandr Fokin 2026/08/20 16:31

От версии 2.9
отредактировано Alexandr Fokin
на 2026/08/20 16:24
Изменить комментарий: К данной версии нет комментариев
К версии 2.7
отредактировано Alexandr Fokin
на 2023/12/16 14:12
Изменить комментарий: Update document after refactoring.

Сводка

Подробности

Свойства страницы
Содержимое
... ... @@ -1,45 +1,28 @@
1 -|(% style="width:77px" %) |(% style="width:1408px" %)CAP теорема
2 -|(% style="width:77px" %) |(% style="width:1408px" %)[[Кластер>>doc:Разработка.Базы данных.Концепции.Кластер.WebHome]]
3 -|(% style="width:77px" %) |(% style="width:1408px" %)Всё, что вы не знали о CAP теореме
4 -https://habr.com/ru/post/328792
5 -|(% style="width:77px" %) |(% style="width:1408px" %)(((
6 -Понятие Split Brain
1 +CAP теорема
2 +\\
7 7  
8 -Ситуация распада кластера узлов на несколько сегментов, в следствии нарушения связи (сети) между сегментами. Каждый сегмент становиться автономным и не может обмениваться данными с другими сегментами. Каждый сегмент принимает решение о продолжение работы.
9 -)))
10 -|(% style="width:77px" %) |(% style="width:1408px" %)(((
11 -|(% style="width:99px" %)Consistency|(% style="width:141px" %)Согласованность данных|(% style="width:1107px" %)В каждый момент времени все узлы возвращают одинаковые наборы данных по одним и тем-же агрегатам. Отсутствие рассинхронизации данных.
12 -|(% style="width:99px" %)Availability|(% style="width:141px" %)Доступность|(% style="width:1107px" %) Каждый узел (не упавший) всегда успешно выполняет запросы (на чтение и запись)
13 -|(% style="width:99px" %)Partition tolerance|(% style="width:141px" %)Устойчивость к разделению|(% style="width:1107px" %)Узлы приложения продолжают работать, даже если связь между ними нарушена и синхронизация невозможна. В таком случае при запросе данных с разных узлов мы можем получить различные агрегаты.
14 -)))
15 -|(% style="width:77px" %) |(% style="width:1408px" %)(((
4 +|(% style="width:164px" %)Понятие Split Brain|(% style="width:1318px" %)Ситуация 1: кластер расположен в одном сетевом сегменте, ноды кластера могут связываться друг с другом.
5 +Ситуация 2: происходит потеря связи, распад на несколько сегментов, которые не могут передавать данные друг другу.
6 +
7 +----
8 +
9 +|(% style="width:107px" %) |(% style="width:199px" %) |(% style="width:1176px" %)
10 +|(% style="width:107px" %)Consistency|(% style="width:199px" %)Согласованность данных|(% style="width:1176px" %)В каждый момент времени все узлы возвращают одинаковые наборы данных по одним и тем-же агрегатам. Отсутствие рассинхронизации данных.
11 +|(% style="width:107px" %)Availability|(% style="width:199px" %)Доступность|(% style="width:1176px" %) Каждый узел (не упавший) всегда успешно выполняет запросы (на чтение и запись)
12 +|(% style="width:107px" %)Partition tolerance|(% style="width:199px" %)Устойчивость к разделению|(% style="width:1176px" %)Ноды приложения продолжают работать, даже если связь между ними нарушена и синхронизация невозможна. В таком случае при запросе данных с разных нод мы можем получить различные агрегаты.
13 +
14 +----
15 +
16 16  |(% colspan="2" %)Невозможно в полной мере выполнять все 3 условия.
17 17  |(% style="width:69px" %)AP|(% style="width:1413px" %)В случае невозможности синхронизации данных (Split Brain), все узлы продолжают работу, даже с учетом рассинхронизации данных.
18 18  |(% style="width:69px" %)CP|(% style="width:1413px" %)Все узлы системы перестают работать, если не могу синхронизировать данные между собой.
19 19  |(% style="width:69px" %) |(% style="width:1413px" %)Возможно ситуация, когда разрозненные сегменты имеет механизм принятия решения о том, стоит ли продолжать обрабатывать запросы.
20 20  Например: в случае если исходный кластер состоял из нечетного кол-ва узлов и распался на 2 сегмента, то сегмент, содержащий наибольшую кол-во узлов (относительно исходного кол-ва в кластере), продолжит работу.
21 -)))
22 22  
23 23  ----
24 24  
25 -==== Внутренние ссылки: ====
24 +Всё, что вы не знали о CAP теореме
25 +https://habr.com/ru/post/328792
26 26  
27 -====== Дочерние страницы: ======
28 28  
29 -{{children/}}
30 -
31 -====== Обратные ссылки: ======
32 -
33 -{{velocity}}
34 -#set ($links = $doc.getBacklinks())
35 -#if ($links.size() > 0)
36 - #foreach ($docname in $links)
37 - #set ($rdoc = $xwiki.getDocument($docname).getTranslatedDocument())
38 - * [[$escapetool.xml($rdoc.fullName)]]
39 - #end
40 -#else
41 - No back links for this page!
42 -#end
43 -{{/velocity}}
44 -
45 -----
28 +