Теория инф-ии vs теория распределенных систем. CAP
От: Sharov Россия  
Дата: 15.08.19 20:36
Оценка:
Здравствуйте.

У нас тут
Автор: Sharov
Дата: 13.08.19
с Синклером вышла интересная дисскуссия по поводу теории распределенных систем, где был затронут ряд вопросов на счет матиматического обеспечения данной теории, и о теореме CAP в частности. Итак:

1) Вот у нас имеются отдельные ненадежные(шумящие) компоненты и ненадежный(шумящий) канал. И вот с помощью целой теории,
в основе которой лежат теорема Котельниова-Шеннона и просто Шеннона, суть которых в том, что из ненадежных
отдельных компонентов и ненадежного канала мы можем построить надежную систему до каких-то там девяток -- 99.999(9). Рассмотрим теперь компьютер, который в своих
физических возможностях ограничен -- мы можем одной машиной обработать исключительно конченое число запросов в ед. времени. Если нам нужно обрабатывать сущ. большее кол-во запросов, чем способна обработать одна машина, мы добавляем еще машин и т.д. И у нас также имеется ненадежный канал, сеть. И... вот все, никаких формализмов, никаких мат. формул, да и вообще никакой существенной математики нет. Хотя аналогия с приемом\передачей сигналов и ненадежных компонентов самая прямая. Т.е. из отдельных компонентов с помощью неких законов мы получаем работающую систему. В одном случае разработана целая теория с подробным мат. аппаратом, типа кодирования и восстановления инф-ии, сжатие и т.д. А в другом, кроме CAP, по сути, ничего нет. Нету каких-либо формул, количественных показателей и т.д Т.е. руководства типа если <100 req/sec делай так, > 10000 req/sec то уже так. Построение распределенных систем в некоторой мере искусство, где каждый справляется как может.

Вопрос -- почему отсутствуют математические основания в теории распр. систем? Т.е. по сути аналогом теорем К.-Ш. является CAP, в которой отсутствует какие-либо
количественных характеристики или формулы. Ну да, есть некий компромисс между C,A и P, выберите 2 из 3. Ну чего-то как-то не густо. Есть фундаментальные работы Лэмпорта по консенсусу еще в 70-80-х годах, но как-то единой теории с соотв. мат. аппаратом не появилось? Почему?

2) Отдельно хотелось бы обсудить теорему CAP. В дискуссии, на которую я ссылаюсь выше, Синклер считает, что данная теорема как минимум бесполезна, ибо не дает
каких-либо количественных характеристик, а как максимум -- вредна. Я же считаю, что данная теорема крайне полезна, т.к. четко проговаривает ключевых абстракции и формулирует некий закон -- 2 из 3. Огромному кол-ву разработчиков всяческих распределенных систем типа соц. сетей, бложиков и т.д. сэкономила кучу времени на разработку костылей, четко определив абстракции, на которые необходимо уделить внимание и предоставив некоторый формализм. Что уже по сути не мало.

Предлагаю поднятые выше два вопроса обсудить.
Кодом людям нужно помогать!
Re: Теория инф-ии vs теория распределенных систем. CAP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 15.08.19 22:32
Оценка: 3 (1)
Здравствуйте, Sharov, Вы писали:

S>Предлагаю поднятые выше два вопроса обсудить.


А вы CAP-теорему читали?
Я вот читал и согласен с Синклером.
Даже на хабре постил статью на эту тему https://habr.com/ru/post/231703/
Re: Теория инф-ии vs теория распределенных систем. CAP
От: Слава  
Дата: 15.08.19 22:56
Оценка: -2
Здравствуйте, Sharov, Вы писали:

S>но как-то единой теории с соотв. мат. аппаратом не появилось? Почему?


1) Сперва сделают единую теорию, а потом она сломается, потому что у RAID-контроллера прошивка немного кривенькая, но поставщик поставляет as is и ответственности не несёт. Это мосту нужен сопромат, потому что за падение моста и посадить могут, а вот за падение программ и железа никого не сажают.
2) Вся наука в айти закончилась в 1990 году примерно (или когда там C++ в народ пошёл), и дальше начался сплошной сбор денег.
3) Человек, пишущий в Inria на Coq в Мадриде, будет зарабатывать меньше чем энергичный вася, пишущий на JavaScript в Москве. Ну какая тут наука.
Re[2]: Теория инф-ии vs теория распределенных систем. CAP
От: Sharov Россия  
Дата: 16.08.19 08:50
Оценка:
Здравствуйте, Слава, Вы писали:

С>Здравствуйте, Sharov, Вы писали:


S>>но как-то единой теории с соотв. мат. аппаратом не появилось? Почему?


С>1) Сперва сделают единую теорию, а потом она сломается, потому что у RAID-контроллера прошивка немного кривенькая, но поставщик поставляет as is и ответственности не несёт. Это мосту нужен сопромат, потому что за падение моста и посадить могут, а вот за падение программ и железа никого не сажают.


Так енто должно учитываться.

С>3) Человек, пишущий в Inria на Coq в Мадриде, будет зарабатывать меньше чем энергичный вася, пишущий на JavaScript в Москве. Ну какая тут наука.


Рынок, что поделать...
Кодом людям нужно помогать!
Re: Теория инф-ии vs теория распределенных систем. CAP
От: Mystic Artifact  
Дата: 16.08.19 09:26
Оценка: 1 (1) +1
Здравствуйте, Sharov, Вы писали:

S>2) Отдельно хотелось бы обсудить теорему CAP. В дискуссии, на которую я ссылаюсь выше, Синклер считает, что данная теорема как минимум бесполезна, ибо не дает

S>каких-либо количественных характеристик, а как максимум -- вредна. Я же считаю, что данная теорема крайне полезна, т.к. четко проговаривает ключевых абстракции и формулирует некий закон -- 2 из 3. Огромному кол-ву разработчиков всяческих распределенных систем типа соц. сетей, бложиков и т.д. сэкономила кучу времени на разработку костылей, четко определив абстракции, на которые необходимо уделить внимание и предоставив некоторый формализм. Что уже по сути не мало.

Мне кажется тут влияет знание не теорем, и CAP в частности, а знание/понимание предметной области, с ее конкретной (естественной) кластеризацией данных/сущностей, понимание требований к системе.

И соц. сети в большинстве своем тут являются плохим примером системы для которой достаточно быть иногда консистентной. Здесь скорее важнее социальные аспекты: что бы пользователь всегда получали доступ (но не обязательно видели последнее состояние чужих сущностей), а так же всегда наблюдали реакцию на собственные действия (лайк ставится и наблюдаем, написанный свой комментарий — тут же видим, а тот факт, что он на другом конце земли будет виден через пол часа и утонет в ленте — это вообще не важно).

И когда, такое понимание предметной области есть — то можно выбрать и подходящее решение. Если для операции требуется ACID — то его придется обеспечить.

Транзакции/учет баланса тоже пример хороший, он, в решениях в лоб — требует ACID. Но доступ к балансу пользовательского счета в 99.9% — неконкурентный, что, с некоторыми ограничениями, допущениями и в конце концов закладываемыми рисками — можно использовать, и обеспечить выполнение транзакции на разделенной системе вплоть до полной суммы. (Под некоторые ограничения, я например, отвожу транзакцию с чипованной картой, где существует монотонный счетчик транзакций, как одна из возможных точек опоры. А под заложенные риски — это недосчитаться денег на балансе, и потом изыскивать способ их вернуть, хотя, при нормальных взаимоотношениях клиента и банка это вообще не проблема.)
Re: Теория инф-ии vs теория распределенных систем. CAP
От: IB Австрия http://rsdn.ru
Дата: 19.08.19 17:45
Оценка:
Здравствуйте, Sharov, Вы писали:

S>2) Отдельно хотелось бы обсудить теорему CAP. В дискуссии, на которую я ссылаюсь выше, Синклер считает, что данная теорема как минимум бесполезна, ибо не дает

S>каких-либо количественных характеристик, а как максимум -- вредна.
S>Я же считаю, что данная теорема крайне полезна, т.к. четко проговаривает ключевых абстракции и формулирует некий закон -- 2 из 3.
Как раз вот это утверждение и подтверждает правоту точки зрения Антона о том, что теорема вредна.
Ведь на самом-то деле нет такого закона как два из трех. На самом деле, возможно все три, все дело в допущениях и граничных условиях. Но "теорема" об этом ничего не говорит, а лишь категорично утверждает, что чем-то надо пожертвовать — а это не правда. То есть CAP намеренно вводит в заблуждение излишне упрощая проблему.
Мы уже победили, просто это еще не так заметно...
Re[2]: Теория инф-ии vs теория распределенных систем. CAP
От: Sharov Россия  
Дата: 20.08.19 09:52
Оценка:
Здравствуйте, IB, Вы писали:

IB>Здравствуйте, Sharov, Вы писали:


IB>Как раз вот это утверждение и подтверждает правоту точки зрения Антона о том, что теорема вредна.

IB>Ведь на самом-то деле нет такого закона как два из трех. На самом деле, возможно все три, все дело в допущениях и граничных условиях. Но "теорема" об этом ничего не говорит, а лишь категорично утверждает, что чем-то надо пожертвовать — а это не правда. То есть CAP намеренно вводит в заблуждение излишне упрощая проблему.


Тот факт, что в ней отсутсвуют количественные характеристики не делает ее бесполезной. А обобщить для допущений и граничных условий, вероятно, не просто, ибо енто уже специфика бизнес области. Т.е. для
каждого будет что-то свое.
Кодом людям нужно помогать!
Re[3]: Теория инф-ии vs теория распределенных систем. CAP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 20.08.19 12:00
Оценка: 2 (1)
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, IB, Вы писали:


IB>>Здравствуйте, Sharov, Вы писали:


IB>>Как раз вот это утверждение и подтверждает правоту точки зрения Антона о том, что теорема вредна.

IB>>Ведь на самом-то деле нет такого закона как два из трех. На самом деле, возможно все три, все дело в допущениях и граничных условиях. Но "теорема" об этом ничего не говорит, а лишь категорично утверждает, что чем-то надо пожертвовать — а это не правда. То есть CAP намеренно вводит в заблуждение излишне упрощая проблему.


S>Тот факт, что в ней отсутсвуют количественные характеристики не делает ее бесполезной.



Давайте по простому изложу CAP теорему.

У нас есть распределенная система, где клиент может отправлять сообщения произвольному узлу и узлы с точки зрения клиента неразличимы. Узлы общаются между собой.

Если возможны разделения сети, то есть узлы перестают общаться между собой, но клиент может достучаться до любых узлов, то у тебя есть два варианта:
1) Забить на согласованность данных в системе, то есть ответы от одних узлов будут отличаться от ответов от других узлов. При этом заявляется что можно создать eventualy consistent системы, которые восстановят согласованность после прекращения разделения.
2) Узлы не будут отвечать. При этом в теореме не рассматривается сколько узлов не будет отвечать.

Это полезно? Какие выводы можно сделать? Какие советы вы бы дали архитектору системы?


Рассматривая цифры можно сделать другие выводы:
1) Разделения сети на практике не такое частое явления. Системы для которых важна отказоустойчивость и отсутствие потерь данных чаще всего работают в одной локальной сети. Сами авторы теоремы говорят что можно считать, что разделения в локальной сети не случаются.
2) eventualy consistent системы работают только тогда, когда интервал восстановления согласованности меньше частоты изменения данных. А в случае неограниченно долгого разделения этого обеспечить никак не получится. Поэтому система гарантированно потеряет данные или нарушит инварианты.
3) Недоступность части узлов на практике не уменьшает доступность системы в целом. Кворумы и failover-кластеры работающие при сохранении связности более N/2 узлов помогают пережить даже значительные разделения без падения доступности.
Re[4]: Теория инф-ии vs теория распределенных систем. CAP
От: Sharov Россия  
Дата: 20.08.19 14:55
Оценка:
Здравствуйте, gandjustas, Вы писали:


G>Давайте по простому изложу CAP теорему.


G>У нас есть распределенная система, где клиент может отправлять сообщения произвольному узлу и узлы с точки зрения клиента неразличимы. Узлы общаются между собой.


G>Если возможны разделения сети, то есть узлы перестают общаться между собой, но клиент может достучаться до любых узлов, то у тебя есть два варианта:

G>1) Забить на согласованность данных в системе, то есть ответы от одних узлов будут отличаться от ответов от других узлов. При этом заявляется что можно создать eventualy consistent системы, которые восстановят согласованность после прекращения разделения.
G>2) Узлы не будут отвечать. При этом в теореме не рассматривается сколько узлов не будет отвечать.

По идее тут мы жертвуем А, соотв. никто не будет отвечать.

G>Это полезно? Какие выводы можно сделать? Какие советы вы бы дали архитектору системы?


Енто зависит от предметной области данного архитектора. И перед ним четко сформулированы компромиссы.
Слушайте, ну ента теорема не решит всех ваших проблем, там действительно нет никаких магических формул. Все чем она может помочь, енто дать представление о тех проблемах с
которыми неминуемо столкнется разработчик распределенных приложений. Я уже в другой дискуссии с Синклером сказал, что да, для людей которые пилят распределенных бд или протоколы данная теорема не очень
интересна, а для массы других разработчиков самое то.

Давайте от противного, а назовите полезную теорему, если таковая имеется, которая поможет разработчикам распр. систем? Вот почитал\изучил, все стало ясно и вперед.


G>2) eventualy consistent системы работают только тогда, когда интервал восстановления согласованности меньше частоты изменения данных. А в случае неограниченно долгого разделения этого обеспечить никак не получится. Поэтому система гарантированно потеряет данные или нарушит инварианты.


Интересно, а енто про частоту откуда?

G>3) Недоступность части узлов на практике не уменьшает доступность системы в целом. Кворумы и failover-кластеры работающие при сохранении связности более N/2 узлов помогают пережить даже значительные разделения без падения доступности.


А если 50 на 50?
Кодом людям нужно помогать!
Re[5]: Теория инф-ии vs теория распределенных систем. CAP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 21.08.19 09:26
Оценка: 1 (1)
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, gandjustas, Вы писали:



G>>Давайте по простому изложу CAP теорему.


G>>У нас есть распределенная система, где клиент может отправлять сообщения произвольному узлу и узлы с точки зрения клиента неразличимы. Узлы общаются между собой.


G>>Если возможны разделения сети, то есть узлы перестают общаться между собой, но клиент может достучаться до любых узлов, то у тебя есть два варианта:

G>>1) Забить на согласованность данных в системе, то есть ответы от одних узлов будут отличаться от ответов от других узлов. При этом заявляется что можно создать eventualy consistent системы, которые восстановят согласованность после прекращения разделения.
G>>2) Узлы не будут отвечать. При этом в теореме не рассматривается сколько узлов не будет отвечать.

S>По идее тут мы жертвуем А, соотв. никто не будет отвечать.

Так вот этот вывод неверный. Ибо доступность узла != доступность системы.
Но этот вывод непременно сделают маркетологи NoSQL.

G>>Это полезно? Какие выводы можно сделать? Какие советы вы бы дали архитектору системы?

S>Енто зависит от предметной области данного архитектора. И перед ним четко сформулированы компромиссы.
Архитекторы тоже люди и им свойственно подвергаться влиянию рекламы и буллшита.


S>Слушайте, ну ента теорема не решит всех ваших проблем, там действительно нет никаких магических формул. Все чем она может помочь, енто дать представление о тех проблемах с

S>которыми неминуемо столкнется разработчик распределенных приложений. Я уже в другой дискуссии с Синклером сказал, что да, для людей которые пилят распределенных бд или протоколы данная теорема не очень
S>интересна, а для массы других разработчиков самое то.
Опять-таки, теорема как она описана и цитируется подталкивает к неверным выводам. В осноном по двум причинам. Первая — терминология, но с ней ещё можно разобраться, а вторая — цифры.
Самое большое вранье как раз в бинарной характеристике доступности. В жизни "доступность" не бинарная.


S>Давайте от противного, а назовите полезную теорему, если таковая имеется, которая поможет разработчикам распр. систем? Вот почитал\изучил, все стало ясно и вперед.

Про теорему не в курсе, но однозначно разработчика распределенных систем поможет докторская диссертация Роя Филдинга, которая называется REpresentational State Transfer.


G>>2) eventualy consistent системы работают только тогда, когда интервал восстановления согласованности меньше частоты изменения данных. А в случае неограниченно долгого разделения этого обеспечить никак не получится. Поэтому система гарантированно потеряет данные или нарушит инварианты.

S>Интересно, а енто про частоту откуда?
Внезапно из самого доказательства, сформулированного Гилбертом и Линч. Там правда сформулировано чуть сложнее, но суть не меняется.

G>>3) Недоступность части узлов на практике не уменьшает доступность системы в целом. Кворумы и failover-кластеры работающие при сохранении связности более N/2 узлов помогают пережить даже значительные разделения без падения доступности.

S>А если 50 на 50?
Для этого количество узлов в failover-кластере всегда делается нечетным.
Может даже теорема какая есть на этот счет.
Re[6]: Теория инф-ии vs теория распределенных систем. CAP
От: Sharov Россия  
Дата: 21.08.19 23:48
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Опять-таки, теорема как она описана и цитируется подталкивает к неверным выводам. В осноном по двум причинам. Первая — терминология, но с ней ещё можно разобраться, а вторая — цифры.

G>Самое большое вранье как раз в бинарной характеристике доступности. В жизни "доступность" не бинарная.

Почему тогда до сих пор нету альтернативы? Другая подобная теорема и т.д. Т.е. куча людей разрабатывают системы, которые работают, разрабатывались
с оглядкой на CAP и вдруг хоп, все делают не так. И никакой вменяемой альтернативы не сформулировано, критика есть, альтернативы нет.

G>Про теорему не в курсе, но однозначно разработчика распределенных систем поможет докторская диссертация Роя Филдинга, которая называется REpresentational State Transfer.


На что конкретно в этой работе советуете обратить внимание -- идеи мысли и т.д.? Stateless вещь хорошая, но не всегда возможная.
Кодом людям нужно помогать!
Re[7]: Теория инф-ии vs теория распределенных систем. CAP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 22.08.19 12:46
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Здравствуйте, gandjustas, Вы писали:


G>>Опять-таки, теорема как она описана и цитируется подталкивает к неверным выводам. В осноном по двум причинам. Первая — терминология, но с ней ещё можно разобраться, а вторая — цифры.

G>>Самое большое вранье как раз в бинарной характеристике доступности. В жизни "доступность" не бинарная.

S>Почему тогда до сих пор нету альтернативы?

Альтернативы чего?


S>Другая подобная теорема и т.д. Т.е. куча людей разрабатывают системы, которые работают, разрабатывались с оглядкой на CAP и вдруг хоп, все делают не так. И никакой вменяемой альтернативы не сформулировано, критика есть, альтернативы нет.

Почему нужна именно теорема? Есть SOA с кучей стандартов построения отказоустойчивых систем, есть REST со своей формулированной семантикой.



G>>Про теорему не в курсе, но однозначно разработчика распределенных систем поможет докторская диссертация Роя Филдинга, которая называется REpresentational State Transfer.

S>На что конкретно в этой работе советуете обратить внимание -- идеи мысли и т.д.?
На все. Там намного больше, чем вы себе представляете.

S>Stateless вещь хорошая, но не всегда возможная.

REST это не про stateless, это про явное оперирование этим самым state и семантику глаголов для этого оперирования.
Re[8]: Теория инф-ии vs теория распределенных систем. CAP
От: Sharov Россия  
Дата: 22.08.19 13:06
Оценка:
Здравствуйте, gandjustas, Вы писали:

S>>Почему тогда до сих пор нету альтернативы?

G>Альтернативы чего?

Теоремы CAP, вестимо.

S>>Другая подобная теорема и т.д. Т.е. куча людей разрабатывают системы, которые работают, разрабатывались с оглядкой на CAP и вдруг хоп, все делают не так. И никакой вменяемой альтернативы не сформулировано, критика есть, альтернативы нет.

G>Почему нужна именно теорема? Есть SOA с кучей стандартов построения отказоустойчивых систем, есть REST со своей формулированной семантикой.

Необязательно, но в данной теме проводится сравнение теории информации, и ее мат. обеспеченность, между теорией распределенных систем и ее полным отсутствие мат. обеспеченности в купе с неудовлетворительной CAP теоремой.
Все-таки странно сравнивать REST и CAP. Кстати, REST стал возможен благодаря вообще удачной web архитектурке в целом.

S>>На что конкретно в этой работе советуете обратить внимание -- идеи мысли и т.д.?

G>На все. Там намного больше, чем вы себе представляете.

Ну можно хотя бы пример на что обратить внимание, помимо REST? Что показалось любопытным при первом знакомтве, на что внимание обратили?
Кодом людям нужно помогать!
Re[9]: Теория инф-ии vs теория распределенных систем. CAP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 22.08.19 15:40
Оценка: 5 (2) +2 -1
Здравствуйте, Sharov, Вы писали:


S>>>Другая подобная теорема и т.д. Т.е. куча людей разрабатывают системы, которые работают, разрабатывались с оглядкой на CAP и вдруг хоп, все делают не так. И никакой вменяемой альтернативы не сформулировано, критика есть, альтернативы нет.

G>>Почему нужна именно теорема? Есть SOA с кучей стандартов построения отказоустойчивых систем, есть REST со своей формулированной семантикой.

S>Необязательно, но в данной теме проводится сравнение теории информации, и ее мат. обеспеченность, между теорией распределенных систем и ее полным отсутствие мат. обеспеченности в купе с неудовлетворительной CAP теоремой.

S>Все-таки странно сравнивать REST и CAP. Кстати, REST стал возможен благодаря вообще удачной web архитектурке в целом.
Не надо искать смвсл там где его нет. CAP и теория информации не связаны.
Более того, CAP доказывается в формальной модели, отличающейся от рельного мира, поэтому практическая полезность равна нулю.
Диссертация Филдинга ориентирована на реальный мир и практическая полезность максимальная.
Почему их нельзя сравнивать? Их сравнивать нужно.


S>>>На что конкретно в этой работе советуете обратить внимание -- идеи мысли и т.д.?

G>>На все. Там намного больше, чем вы себе представляете.
S>Ну можно хотя бы пример на что обратить внимание, помимо REST? Что показалось любопытным при первом знакомтве, на что внимание обратили?
Реально на все:
Первая глава — что такое архитектура и её составные части.
Вторая глава — архитектуры сетевых приложений, какие бывают
Третья глава — способы взаимодействия в сетевых приложениях
Главы 4-6 — собственно REST

Причем внезапно сам филдинг не ставит знак равенства между REST и WWW, хотя утвреждает что HTTP максимально подходит для REST (он вообще много для чего подходит).
Re[3]: Теория инф-ии vs теория распределенных систем. CAP
От: IB Австрия http://rsdn.ru
Дата: 22.08.19 16:03
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Тот факт, что в ней отсутсвуют количественные характеристики не делает ее бесполезной.

Прочитайте еще раз внимательно то что я написал выше, включая вашу же фразу.
Тот факт, что в ней отсутствуют количественные характеристики, действительно не делает ее бесполезной. Их отсутствие просто меняет смысл утверждения на противоположный, что делает данную "теорему" вредной. Иными словами, утверждение в этой теореме — ложно.

S> А обобщить для допущений и граничных условий, вероятно, не просто, ибо енто уже специфика бизнес области. Т.е. для

S>каждого будет что-то свое.
Утверждение в этой "теореме" препятствует делать какие либо попытки выяснить "что-то свое".
Мы уже победили, просто это еще не так заметно...
Re[7]: Теория инф-ии vs теория распределенных систем. CAP
От: IB Австрия http://rsdn.ru
Дата: 22.08.19 16:08
Оценка: 2 (2) +2
Здравствуйте, Sharov, Вы писали:

S>Почему тогда до сих пор нету альтернативы? Другая подобная теорема и т.д. Т.е. куча людей разрабатывают системы, которые работают, разрабатывались

S>с оглядкой на CAP и вдруг хоп, все делают не так.
Вы телегу впереди лошади ставите. Сначала появилось куча распределенных систем и NoSQL, а уже потом, как объяснение того, почему они так херово работают, маркетологи придумали CAP теорему. Мол, то чего вы хотите — теоретически не возможно, поэтому успокойтесь уже.
Никто, ничего с оглядкой на CAP не разрабатывал и не разрабатывает. Собственно, это и объясняет, и отсутствие каких-либо параметров и практическую неприменимость этой теоремы.
Мы уже победили, просто это еще не так заметно...
Re[4]: Теория инф-ии vs теория распределенных систем. CAP
От: Denis Ivlev  
Дата: 22.08.19 16:30
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>1) Разделения сети на практике не такое частое явления. Системы для которых важна отказоустойчивость и отсутствие потерь данных чаще всего работают в одной локальной сети. Сами авторы теоремы говорят что можно считать, что разделения в локальной сети не случаются.


1) Железо ломается и чем больше в кластере нод, тем более рядовым явлением становится потеря члена.
2) Системы для которых важна отказоустойчивость и отсутствие потерь данных никогда не работают в одной сети, всегда есть реплицирование как минимум в один другой датацентр.

G>3) Недоступность части узлов на практике не уменьшает доступность системы в целом. Кворумы и failover-кластеры работающие при сохранении связности более N/2 узлов помогают пережить даже значительные разделения без падения доступности.


1) Что такое фейловер кластер? Мне понятны слова по отдельности, но не вместе.
2) В каком алгоритме консенсус достигается при половине членов? Насколько я могу представить, наоборот, требуется избыточность.
Re[2]: Теория инф-ии vs теория распределенных систем. CAP
От: Artem Korneev США https://www.linkedin.com/in/artemkorneev/
Дата: 22.08.19 19:38
Оценка:
Здравствуйте, IB, Вы писали:

IB>а это не правда


Я попытался себе представить все три из трех, C + A + P, и это сломало мне мозг. Я не могу представить систему, которая во фрагментированном состоянии была бы одновременно консистентна и всегда доступна.

Можете привести какой-нибудь пример, где теорема САР не работала бы?
С уважением, Artem Korneev.
Re[3]: Теория инф-ии vs теория распределенных систем. CAP
От: IB Австрия http://rsdn.ru
Дата: 22.08.19 19:56
Оценка: +1
Здравствуйте, Artem Korneev, Вы писали:

AK>Я попытался себе представить все три из трех, C + A + P, и это сломало мне мозг. Я не могу представить систему, которая во фрагментированном состоянии была бы одновременно консистентна и всегда доступна.

AK>Можете привести какой-нибудь пример, где теорема САР не работала бы?
Поинт в том, что прежде чем представлять, надо сначала определить, что значит "консистентна" и что значит "доступна". И внезапно окажется, что при консистентности Х и доступности Y, возможно и С и А и P и еще и Z в придачу. Иными словами, утверждение CAP — ложно.
Более подробно и с примерами Антон ответил тут: http://rsdn.org/forum/db/7518063.1
Автор: Sinclair
Дата: 14.08.19
Мы уже победили, просто это еще не так заметно...
Re[5]: Теория инф-ии vs теория распределенных систем. CAP
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 22.08.19 20:12
Оценка:
Здравствуйте, Denis Ivlev, Вы писали:

DI>Здравствуйте, gandjustas, Вы писали:


G>>1) Разделения сети на практике не такое частое явления. Системы для которых важна отказоустойчивость и отсутствие потерь данных чаще всего работают в одной локальной сети. Сами авторы теоремы говорят что можно считать, что разделения в локальной сети не случаются.


DI>1) Железо ломается и чем больше в кластере нод, тем более рядовым явлением становится потеря члена.

И? В CAP не рассматривается случай потери одного узла. Там рассматривается разделение сети, когда узлы работают, отвечают клиентам, но не общаются между собой.

DI>2) Системы для которых важна отказоустойчивость и отсутствие потерь данных никогда не работают в одной сети, всегда есть реплицирование как минимум в один другой датацентр.

И? Вопрос пассивных реплик не рассматривается в CAP. Рассматриваются только случаи когда все узлы активные, то есть отвечают на запросы клиентов.

G>>3) Недоступность части узлов на практике не уменьшает доступность системы в целом. Кворумы и failover-кластеры работающие при сохранении связности более N/2 узлов помогают пережить даже значительные разделения без падения доступности.


DI>1) Что такое фейловер кластер? Мне понятны слова по отдельности, но не вместе.

Это название технологии в Windows Server, а также неофициально применяется для семейства технологий обеспечения отказоустойчивости на основе кворума.

DI>2) В каком алгоритме консенсус достигается при половине членов? Насколько я могу представить, наоборот, требуется избыточность.

В алгоритме синхронного коммита. Когда запрос приходит на узел узел отправляет данные всем остальным узлам и в случае получения подтверждения от N/2+1 узлов отвечает на запрос клиента.
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.