Исходный код вики CAP теорема
Версия 2.5 от Alexandr Fokin на 2022/11/11 19:27
Скрыть последних авторов
author | version | line-number | content |
---|---|---|---|
![]() |
1.1 | 1 | CAP теорема |
![]() |
2.5 | 2 | \\ |
![]() |
1.1 | 3 | |
![]() |
2.5 | 4 | |(% style="width:164px" %)Понятие Split Brain|(% style="width:1318px" %)Ситуация 1: кластер расположен в одном сетевом сегменте, ноды кластера могут связываться друг с другом. |
5 | Ситуация 2: происходит потеря связи, распад на несколько сегментов, которые не могут передавать данные друг другу. | ||
6 | |||
![]() |
2.4 | 7 | ---- |
![]() |
1.1 | 8 | |
![]() |
2.4 | 9 | |(% style="width:107px" %) |(% style="width:199px" %) |(% style="width:1176px" %) |
10 | |(% style="width:107px" %)Consistency|(% style="width:199px" %)Согласованность данных|(% style="width:1176px" %)В каждый момент времени все узлы возвращают одинаковые наборы данных по одним и тем-же агрегатам. Отсутствие рассинхронизации данных. | ||
![]() |
2.5 | 11 | |(% style="width:107px" %)Availability|(% style="width:199px" %)Доступность|(% style="width:1176px" %) Каждый узел (не упавший) всегда успешно выполняет запросы (на чтение и запись) |
![]() |
2.4 | 12 | |(% style="width:107px" %)Partition tolerance|(% style="width:199px" %)Устойчивость к разделению|(% style="width:1176px" %)Ноды приложения продолжают работать, даже если связь между ними нарушена и синхронизация невозможна. В таком случае при запросе данных с разных нод мы можем получить различные агрегаты. |
![]() |
1.1 | 13 | |
![]() |
2.4 | 14 | ---- |
15 | |||
16 | |(% colspan="2" %)Невозможно в полной мере выполнять все 3 условия. | ||
![]() |
2.5 | 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 сегмента, то сегмент, содержащий наибольшую кол-во узлов (относительно исходного кол-ва в кластере), продолжит работу. | ||
![]() |
2.4 | 21 | |
22 | ---- | ||
23 | |||
![]() |
1.1 | 24 | Всё, что вы не знали о CAP теореме |
25 | https://habr.com/ru/post/328792 | ||
![]() |
2.1 | 26 | |
27 | |||
![]() |
2.5 | 28 |