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

Сообщение Re[5]: Сервисы, передающие изменения другим сервисам и т.д. от 07.04.2022 19:53

Изменено 07.04.2022 20:09 Finder_b

Re[5]: Сервисы, передающие изменения другим сервисам и т.д.
Здравствуйте, Sharov, Вы писали:

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


S>>>А почему тут вылетают A(низко-надежным) И P(плохо-масштабирующимся), если по CAP теореме наоборот должно остаться 2 из 3, а вылететь одна буква?

S>>>"Выберите 2 из 3".
F_>>Для очереди в бинес-приложени Сonsistency очень важно — его отсутствие означает как потерю сообщений так и их реордеринг. Остается A или P. Чистое CA и CP существуют лишь в математическом мире. Они обычно довольно бессмысленные в реальной системе. По тому что такая система будет рассыпаться от малейшего чиха, без возможности ее поднять. Я делал статическую валидацию кода, которая доказывала что программа обладает 100% Consistency. Но тот код который который проходил эту валидацию, я ни кому не пожелал бы увидеть в проде.
F_>>Таким образом поскольку мы не можем получить ста процентов на ни на A ни на P. Система будет плохо масштабироватся, и часто ломаться. Мы можем только управлять этими вероятностями. Хуже всего то, что иногда она будет ломаться при попытке масштабироватся. Что для программы, у которой не доказано что она 100% C, почти гарантированно приводит к потере Сonsistency.
Я позволил себе вернуть часть поскипанного текста, важную для обсуждения.

S>Почему мы не может достичь 100% CA для банков? Насколько понимаю, именно для этих целей делали

S>мейнфреймы -- один большой и мощный компьютер. Т.е. в случае мощного монолита мы можем получить 100% CA.
S>Тут возможны проблемы, но только из-за ненадежной сети (проблема 2х генералов).
Я согласен с тобой — получить 100% CA возможно. Просто такая система получатся ну ооочень сложной, и крайне чувствительной к латентности сети. Если у нас P меньше 51% процента, то при стопроцентном C — то любая операция связная с конкурентным доступом, будет потребует не менее латентность*6 времени. В реальной системе показатель даже хуже, из-за сложности получения математически оптимального результата. В системе которую разработал я, среднее время операции было в 24 раза больше латентности (p порядка 38%), а время гарантированного завершения 99.999% операций было вообще в двести с чем то раз больше латентности сети (значение рассчитано теоретически). По этому такой мейнфрейм может быть расположен только в одном датацентре, или в лучшем случае в одном городе. Что уже намекает что с A у нас не все порядке. При стопроцентном A мы должны мочь пережить отключение света в пределах всего одного города страны. И даже отключение света в одной стране должны пережить, но в России в связи с особенностью законодательства о персональных данных это не возможно. К тому-же непонятно как систему восстанавливать после того как авария с сетью произошла. При стопроцентном CA это выглядит ну очень затруднительной процедурой.

Из чудовищной сложности таких систем, процедур их обслуживания, и их общей тормазнутости — я сделал вывод что в реальном мире они не встречаются. Приношу извинения, это не некорректная генерализация. Допускаю что такие системы где-то действительно есть. Но в реальности требуется статически доказать что они действительно 100% CA, так как во всех виденных мной системах была масса не очевидных на первый взгляд путей через граф их состояния, которые приводили к потере либо C либо A. Хотя все такие пути ну очень маловероятны, но их большое количество и склонность корреляции приводили к снижению С и A где-то до 95% от вероятности аварии.

Статическая валидация маломальски-сложного алгоритма тоже не представляется возможным. К примеру я в свое время я разрабатывал криптовалюту, на строгом алгоритме синхронизации. До миллиона tps, время достижения полной согласованности сети 5-20 секунд, время достижения локальной согласованности 400 миллисекунд. Миллион RPS, удаление старых транзакций. С=1,A=0.30,P=0.30 в локальном сегменте сети P до 80% ценой длятельной потери A с другими сегментами. В примитивном конечном автомате этой кроиптовалюты было, если мне не изменят память, полсотни состояний. Если исключить изоморфные (хз как правильно сказать, в общем приводимые к одному и тому же состоянию, путем эквивалентных преобразований). А теоретическое время ее полной статической валидации было 20 дней на весьма мощной машине. Даже той та часть конечного автомата которую я успел реализовать (15 состояний) — валидировалась что-то около 15 секунд. К сожалению все заглохло, так как проект большой, а я не совершено не умею подорвать. Но ни сколько не сомневаюсь, что 20 дней на одной машине это крайне оптимистичная оценка. Теперь представьте мейнфрейм в котором миллиарды возможных состояний. Вы всерьез верите что хоть одни человек может проверить их в голове? Со статической валидаций таких алгоритмов ни кто вообще не заморачивается. Это критично для крипты, которую буду абузить, а не для менфрейма. По этом я не думаю что они 100% CA где-то кроме рекламных буклетов.
Re[5]: Сервисы, передающие изменения другим сервисам и т.д.
Здравствуйте, Sharov, Вы писали:

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


S>>>А почему тут вылетают A(низко-надежным) И P(плохо-масштабирующимся), если по CAP теореме наоборот должно остаться 2 из 3, а вылететь одна буква?

S>>>"Выберите 2 из 3".
F_>>Для очереди в бинес-приложени Сonsistency очень важно — его отсутствие означает как потерю сообщений так и их реордеринг. Остается A или P. Чистое CA и CP существуют лишь в математическом мире. Они обычно довольно бессмысленные в реальной системе. По тому что такая система будет рассыпаться от малейшего чиха, без возможности ее поднять. Я делал статическую валидацию кода, которая доказывала что программа обладает 100% Consistency. Но тот код который который проходил эту валидацию, я ни кому не пожелал бы увидеть в проде.
F_>>Таким образом поскольку мы не можем получить ста процентов на ни на A ни на P. Система будет плохо масштабироватся, и часто ломаться. Мы можем только управлять этими вероятностями. Хуже всего то, что иногда она будет ломаться при попытке масштабироватся. Что для программы, у которой не доказано что она 100% C, почти гарантированно приводит к потере Сonsistency.
Я позволил себе вернуть часть поскипанного текста, важную для обсуждения.

S>Почему мы не может достичь 100% CA для банков? Насколько понимаю, именно для этих целей делали

S>мейнфреймы -- один большой и мощный компьютер. Т.е. в случае мощного монолита мы можем получить 100% CA.
S>Тут возможны проблемы, но только из-за ненадежной сети (проблема 2х генералов).
Я согласен с тобой — получить 100% CA возможно. Просто такая система получатся ну ооочень сложной, и крайне чувствительной к латентности сети. Если у нас P меньше 51% процента, то при стопроцентном C — то любая операция связная с конкурентным доступом, будет потребует не менее латентность*6 времени (*3 если за латентность считать время запрос-ответ). В реальной системе показатель даже хуже, из-за сложности получения математически оптимального результата и того что редко-кода удается обойтись одним конкурентным доступом. В системе которую разработал я, среднее время операции было в 24 раза больше латентности (p порядка 38%), а время гарантированного завершения 99.999% операций было вообще в двести с чем то раз больше латентности сети (значение рассчитано теоретически). По этому такой мейнфрейм может быть расположен только в одном датацентре, или в лучшем случае в одном городе. Что уже намекает что с A у нас не все порядке. При стопроцентном A мы должны мочь пережить отключение света в пределах всего одного города страны. И даже отключение света в одной стране должны пережить, но в России в связи с особенностью законодательства о персональных данных это не возможно. К тому-же непонятно как систему восстанавливать после того как авария с сетью произошла. При стопроцентном CA это выглядит ну очень затруднительной процедурой.

Из чудовищной сложности таких систем, процедур их обслуживания, и их общей тормазнутости — я сделал вывод что в реальном мире они не встречаются. Приношу извинения, это не некорректная генерализация. Допускаю что такие системы где-то действительно есть. Но в реальности требуется статически доказать что они действительно 100% CA, так как во всех виденных мной системах была масса не очевидных на первый взгляд путей через граф их состояния, которые приводили к потере либо C либо A. Хотя все такие пути ну очень маловероятны, но их большое количество и склонность корреляции приводили к снижению С и A где-то до 95% от вероятности аварии.

Статическая валидация маломальски-сложного алгоритма тоже не представляется возможным. К примеру я в свое время я разрабатывал криптовалюту, на строгом алгоритме синхронизации. До миллиона tps, удаление старых транзакций, время достижения полной согласованности сети 5-20 секунд, время достижения локальной согласованности 400 миллисекунд. С=1,A=0.30,P=0.30 в локальном сегменте сети P до 80% ценой длительной потери A с другими сегментами. В примитивном конечном автомате этой кроиптовалюты, если мне не изменят память, было полсотни состояний. Если исключить изоморфные (хз как правильно сказать, в общем приводимых к одному и тому же состоянию, путем эквивалентных преобразований). А теоретическое время ее полной статической валидации было 20 дней на весьма мощной машине. Даже та часть конечного автомата которую я успел реализовать (около 15 состояний) — валидировалась что-то около 15 секунд. К сожалению все заглохло, так как проект большой, а я не совершено не умею подорвать. Но ни сколько не сомневаюсь, что 20 дней на одной машине это крайне оптимистичная оценка. Теперь представьте мейнфрейм в котором миллиарды возможных состояний. Вы всерьез верите что хоть одни человек может проверить их в голове? Со статической валидаций таких алгоритмов ни кто вообще не заморачивается. Это критично для крипты, которую буду абузить, а не для менфрейма. По этом я не думаю что они 100% CA где-то кроме рекламных буклетов.