Исходный код вики CAP теорема

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

Скрыть последних авторов
Alexandr Fokin 2.8 1 |(% style="width:77px" %) |(% style="width:1408px" %)CAP теорема
Alexandr Fokin 2.10 2 |(% style="width:77px" %) |(% style="width:1408px" %)[[Кластер>>doc:Разработка.Базы данных.Механизмы.Кластер.WebHome]]
Alexandr Fokin 2.8 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
Alexandr Fokin 1.1 7
Alexandr Fokin 2.8 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" %)(((
Alexandr Fokin 2.4 16 |(% colspan="2" %)Невозможно в полной мере выполнять все 3 условия.
Alexandr Fokin 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 сегмента, то сегмент, содержащий наибольшую кол-во узлов (относительно исходного кол-ва в кластере), продолжит работу.
Alexandr Fokin 2.8 21 )))
Alexandr Fokin 2.4 22
23 ----
24
Alexandr Fokin 2.8 25 ==== Внутренние ссылки: ====
Alexandr Fokin 2.1 26
Alexandr Fokin 2.8 27 ====== Дочерние страницы: ======
Alexandr Fokin 2.1 28
Alexandr Fokin 2.8 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 ----