Информация об изменениях

Сообщение Re[5]: CAP от 14.08.2019 3:57

Изменено 14.08.2019 4:02 Sinclair

Re[5]: CAP
Здравствуйте, Sharov, Вы писали:
S>До ентого не дошел пока, а что с CAP может быть не так? Единственная мало-мальски адекватная (формальная???) модель для распеределенных приложений. Этакая теорема Шеннона для распределенных систем.
1. Во-первых, она криво сформулирована. Поскольку нет такого понятия, как Partition Tolerance в отдельности от Consistency, не имеет и смысл ставить вопрос так, как будто там есть выбор. Более корректная, но менее красивая формулировка утверждения этой теоремы состоит в том, что при network partition вам придётся выбирать между consistency и availability.
2. Во-вторых, она бесполезна, т.к. не предлагает никаких инструментов для управления этим выбором. Грубо говоря, могу ли я частично пожертовать availability, чтобы получить частичную consistency? Если да, то насколько? Если нет, то почему?
Re[5]: CAP
Здравствуйте, Sharov, Вы писали:
S>До ентого не дошел пока, а что с CAP может быть не так? Единственная мало-мальски адекватная (формальная???) модель для распеределенных приложений. Этакая теорема Шеннона для распределенных систем.
1. Во-первых, она криво сформулирована. Поскольку нет такого понятия, как Partition Tolerance в отдельности от Consistency, не имеет и смысл ставить вопрос так, как будто там есть выбор. Более корректная, но менее красивая формулировка утверждения этой теоремы состоит в том, что при network partition вам придётся выбирать между consistency и availability.
2. Во-вторых, она бесполезна, т.к. не предлагает никаких инструментов для управления этим выбором. Грубо говоря, могу ли я частично пожертовать availability, чтобы получить частичную consistency? Если да, то насколько? Если нет, то почему?

The Unhelpful CAP Theorem

CAP is sometimes presented as Consistency, Availability, Partition tolerance: pick 2
out of 3. Unfortunately, putting it this way is misleading [32] because network partitions
are a kind of fault, so they aren’t something about which you have a choice: they
will happen whether you like it or not [38].
At times when the network is working correctly, a system can provide both consistency
(linearizability) and total availability. When a network fault occurs, you have to
choose between either linearizability or total availability. Thus, a better way of phrasing
CAP would be either Consistent or Available when Partitioned [39]. A more reliable
network needs to make this choice less often, but at some point the choice is
inevitable.
In discussions of CAP there are several contradictory definitions of the term availability,
and the formalization as a theorem [30] does not match its usual meaning [40].
Many so-called “highly available” (fault-tolerant) systems actually do not meet CAP’s
idiosyncratic definition of availability. All in all, there is a lot of misunderstanding
and confusion around CAP, and it does not help us understand systems better, so
CAP is best avoided.

(Martin Kleppman, DDIA)
См. тж. https://arxiv.org/abs/1509.05393