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

Редактировал(а) Alexandr Fokin 2024/01/04 19:49

<
От версии < 2.3 >
отредактировано Alexandr Fokin
на 2022/06/15 13:57
К версии < 2.7 >
отредактировано Alexandr Fokin
на 2023/12/16 14:12
>
Изменить комментарий: Update document after refactoring.

Комментарий

Подробности

Свойства страницы
Содержимое
... ... @@ -1,15 +1,28 @@
1 1  CAP теорема
2 +\\
2 2  
3 -Consistency (согласованность данных) - в каждый момент времени все узлы возвращают одинаковые наборы данных по одним и тем-же агрегатам. Отсутствие рассинхронизации данных.
4 -Availability (доступность) - каждый работающий узел возвращает данные, возможно несинхронизированные с другими нодами.
5 -Partition tolerance (устойчивость к разделению) - ноды приложения продолжают работать, даже если связь между ними нарушена и синхронизация невозможна. В таком случае при запросе данных с разных нод мы можем получить различные агрегаты.
4 +|(% style="width:164px" %)Понятие Split Brain|(% style="width:1318px" %)Ситуация 1: кластер расположен в одном сетевом сегменте, ноды кластера могут связываться друг с другом.
5 +Ситуация 2: происходит потеря связи, распад на несколько сегментов, которые не могут передавать данные друг другу.
6 6  
7 -Невозможно в полной мере выполнять все 3 условия.
8 -AP - в случае невозможности синхронизации данных, все узлы продолжают работу, даже с учетом рассинронизации данных.
9 -CP - все узлы системы перестают работать, если не могу синхронизировать данные между собой.
7 +----
10 10  
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 +|(% colspan="2" %)Невозможно в полной мере выполнять все 3 условия.
17 +|(% style="width:69px" %)AP|(% style="width:1413px" %)В случае невозможности синхронизации данных (Split Brain), все узлы продолжают работу, даже с учетом рассинхронизации данных.
18 +|(% style="width:69px" %)CP|(% style="width:1413px" %)Все узлы системы перестают работать, если не могу синхронизировать данные между собой.
19 +|(% style="width:69px" %) |(% style="width:1413px" %)Возможно ситуация, когда разрозненные сегменты имеет механизм принятия решения о том, стоит ли продолжать обрабатывать запросы.
20 +Например: в случае если исходный кластер состоял из нечетного кол-ва узлов и распался на 2 сегмента, то сегмент, содержащий наибольшую кол-во узлов (относительно исходного кол-ва в кластере), продолжит работу.
21 +
22 +----
23 +
11 11  Всё, что вы не знали о CAP теореме
12 12  https://habr.com/ru/post/328792
13 13  
14 14  
15 -Понятие Split brain
28 +