Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 03:59
Оценка: 15 (1) :)
Вот тут, кто подзабыл: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B4%D0%B2%D1%83%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2

По идее эта задача считается неразрешимой.

Вопрос у меня вот в чем. Если я перевожу средства со счета в одном банке на счет в другом банке (очевидно у них разные СУБД и нельзя использовать локальную транзакцию). Канал передачи не надежен на 100% — очевидно — это глобальная сеть и сбои могут быть.

Но существует же алгоритм, благодаря которому имеем 100% достоверность, что действия будут согласованы и на 100% деньги не исчезнут одновременно с двух счетов а так же не удвоятся, не смотря на то что канал связи не надежен?

По идее так. Даю команду перевести 100 руб. на другой счет. Банк 1 сначала создает запись о переводе, уменьшает сумму на счете на 100 руб. Потом пытается связаться с внешним сервисом (пусть там другого банка или нац. банка — не важно) и при успешном ответе от него — уже фиксирует транзакцию. Если ответа нет — то делает запросы до победного конца (деньги будет блокировать, пока не внесется ясность).

Но тут какая проблема. Откуда банк 2 знает что банк 1 получил успешный ответ? Вдруг не получил? Значит банк 2 должен сделать запрос к банку 1. Но это очень похоже на задачу двух генералов этих, которая вроде как неразрешима.

Или же наличие ответственного в принятии решений как бы делает задачу разрешимой?

Вопрос вот в чем. Можно ли как-то таки эту задачу генералов решить не вероятностно (что согласованность получена с большой вероятностью) а точно? Поможет ли введение ответственного в принятии решений? И таки перевод средств из одной системы в другую (когда нет локальных транзакций, скажем так) по ненадежному каналу связи — решен вероятностно или же существует точное решение?
Отредактировано 28.10.2021 4:09 Shmj . Предыдущая версия . Еще …
Отредактировано 28.10.2021 4:04 Shmj . Предыдущая версия .
Отредактировано 28.10.2021 4:00 Shmj . Предыдущая версия .
Re: Про задачу 2 генералов в реальной жизни...
От: Real 3L0 Россия http://prikhodko.blogspot.com
Дата: 28.10.21 06:55
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Вопрос вот в чем. Можно ли как-то таки эту задачу генералов решить не вероятностно (что согласованность получена с большой вероятностью) а точно? Поможет ли введение ответственного в принятии решений? И таки перевод средств из одной системы в другую (когда нет локальных транзакций, скажем так) по ненадежному каналу связи — решен вероятностно или же существует точное решение?


Несанкционированный овердрафт.
Вселенная бесконечна как вширь, так и вглубь.
Re: Про задачу 2 генералов в реальной жизни...
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.10.21 09:41
Оценка: 3 (1)
Здравствуйте, Shmj, Вы писали:

S>Вот тут, кто подзабыл: https://ru.wikipedia.org/wiki/%D0%97%D0%B0%D0%B4%D0%B0%D1%87%D0%B0_%D0%B4%D0%B2%D1%83%D1%85_%D0%B3%D0%B5%D0%BD%D0%B5%D1%80%D0%B0%D0%BB%D0%BE%D0%B2


S>По идее эта задача считается неразрешимой.


Не считается. Доказано, что она неразрешима. Или есть вопросы к доказательству?

S>Вопрос у меня вот в чем. Если я перевожу средства со счета в одном банке на счет в другом банке (очевидно у них разные СУБД и нельзя использовать локальную транзакцию). Канал передачи не надежен на 100% — очевидно — это глобальная сеть и сбои могут быть.


S>Но существует же алгоритм, благодаря которому имеем 100% достоверность, что действия будут согласованы и на 100% деньги не исчезнут одновременно с двух счетов а так же не удвоятся, не смотря на то что канал связи не надежен?

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

S>По идее так. Даю команду перевести 100 руб. на другой счет. Банк 1 сначала создает запись о переводе, уменьшает сумму на счете на 100 руб. Потом пытается связаться с внешним сервисом (пусть там другого банка или нац. банка — не важно) и при успешном ответе от него — уже фиксирует транзакцию. Если ответа нет — то делает запросы до победного конца (деньги будет блокировать, пока не внесется ясность).


S>Но тут какая проблема. Откуда банк 2 знает что банк 1 получил успешный ответ? Вдруг не получил? Значит банк 2 должен сделать запрос к банку 1. Но это очень похоже на задачу двух генералов этих, которая вроде как неразрешима.


очень, но не вполне. Перевод денег не требует синхронности. Поэтому, списать можно сегодня, а обнаружить переведенное — через 3 банковских дня. Лаг в 3 рабочих дня не обеспечивает гарантию, но дает очень-очень надежный статистический результат. Если что пойдет не так, запись о переводе можно доставить хоть на оленях.

S>Или же наличие ответственного в принятии решений как бы делает задачу разрешимой?

задачу о двух генералах — нет, не делает. Банковский перевод может быть при этом достаточно надежным.

S>Вопрос вот в чем. Можно ли как-то таки эту задачу генералов решить не вероятностно (что согласованность получена с большой вероятностью) а точно? Поможет ли введение ответственного в принятии решений? И таки перевод средств из одной системы в другую (когда нет локальных транзакций, скажем так) по ненадежному каналу связи — решен вероятностно или же существует точное решение?

Еще раз, см. доказательство неразрешимости задачи о двух генералах. При любом кол-ве посредников будет минимальный набор сообщений между ними, обеспечивающий синхронную атаку генералов. И отсутствие гарантии доставить минимальный набор сообщений.

На деле же, хотя банки и гарантируют перевод в 3 дня, вполне могут деньги потерять и найти через месяц-другой, а то и пол года.
Re[2]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 10:02
Оценка:
Здравствуйте, samius, Вы писали:

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


Ну, из-за проблем канала связи — не будет пол года. Это что, за пол года так и не восстановили канал связи? Что если исходить из гарантии 99.5% доступности канала связи на каждой из сторон — можно ли сказать, что в течение 5 дней при любом раскладе транзакция будет завершена?

99.5% гарантия доступности — это значит что максимум 2 дня в год не будет связи. Даже в худшем варианте — 2 дня один банк сидел без канала, потом сразу 2 дня другой — совпал худший сценарий. Но потом на 5 день 100% проведена будет — при самом худшем раскладе.
Отредактировано 28.10.2021 10:04 Shmj . Предыдущая версия . Еще …
Отредактировано 28.10.2021 10:04 Shmj . Предыдущая версия .
Re[3]: Про задачу 2 генералов в реальной жизни...
От: Sharov Россия  
Дата: 28.10.21 10:14
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Ну, из-за проблем канала связи — не будет пол года. Это что, за пол года так и не восстановили канал связи? Что если исходить из гарантии 99.5% доступности канала связи на каждой из сторон — можно ли сказать, что в течение 5 дней при любом раскладе транзакция будет завершена?

S>99.5% гарантия доступности — это значит что максимум 2 дня в год не будет связи. Даже в худшем варианте — 2 дня один банк сидел без канала, потом сразу 2 дня другой — совпал худший сценарий. Но потом на 5 день 100% проведена будет — при самом худшем раскладе.

Сами ответили на свой вопрос

Но тут какая проблема. Откуда банк 2 знает что банк 1 получил успешный ответ? Вдруг не получил? Значит банк 2 должен сделать запрос к банку 1. Но это очень похоже на задачу двух генералов этих, которая вроде как неразрешима.


На 5-й день все будет ходить в обе стороны.
Кодом людям нужно помогать!
Re[4]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 10:27
Оценка:
Здравствуйте, Sharov, Вы писали:

S>На 5-й день все будет ходить в обе стороны.


Получается, что если канал связи не стабилен, но все же имеет точную вероятностную оценку доступности (не менее чем...) — мы можем вычислить время, в течение которого системы будут согласованы на 100%? Так почему же задача не имеет решения?

В случае с генералами это можно рассматривать так.

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

Второй генерал знает что если новый посыльный не пришел — значит первый добрался — значит время согласовано.

Тут можно рассматривать вариант, что первый генерал посылает посылает посыльных и никто из них так и не смог проделать цикл.

Если рассматривать что вероятность успеха посыльного — 50% и можно посылать посыльного 1 раз в час — то каждый час вероятность согласования (если новый посыльный не пришел) — удваивается. Т.е. вероятность что посыльный не дошел — падает в 2 раза каждый час.

Однако же в случае с банками — у нас иного рода гарантии. Мы имеем максимально возможное время недоступности канала в год — 2 дня. Не больше точно. Если бы эту гарантию перенести на генералов, что при худшем раскладе лишь 1% времени в год посыльный не дойдет — тогда как бы уже задача разрешима.
Отредактировано 28.10.2021 11:06 Shmj . Предыдущая версия . Еще …
Отредактировано 28.10.2021 10:44 Shmj . Предыдущая версия .
Re[5]: Про задачу 2 генералов в реальной жизни...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.10.21 11:02
Оценка: +1
Здравствуйте, Shmj, Вы писали:

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


S>>На 5-й день все будет ходить в обе стороны.


S>Получается, что если канал связи не стабилен, но все же имеет точную вероятностную оценку доступности (не менее чем...) — мы можем вычислить время, в течение которого системы будут согласованы на 100%? Так почему же задача не имеет решения?


Потому что решение (вернее его отсутствие) формулируется в дискретных величинах — да или нет.
Мы прекрасно понимаем, что в реальности есть величины непрерывные. И задача в целом решается, ибо можно перевести деньги из одного банка в другой.
Re[5]: Про задачу 2 генералов в реальной жизни...
От: Sharov Россия  
Дата: 28.10.21 11:13
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Получается, что если канал связи не стабилен, но все же имеет точную вероятностную оценку доступности (не менее чем...) — мы можем вычислить время, в течение которого системы будут согласованы на 100%? Так почему же задача не имеет решения?


Потому что она имеет стохастическую природу. Вы уже оперируете вероятностями -- может так,а может не так.
Поэтому получить точное конкретное решение не возможно. Т.е. возможно с некоторой вероятностью.


S>Однако же в случае с банками — у нас иного рода гарантии. Мы имеем максимально возможное время недоступности канала в год — 2 дня. Не больше точно. Если бы эту гарантию перенести на генералов, что при худшем раскладе лишь 1% времени в год посыльный не дойдет — тогда как бы уже задача разрешима.


Выше уже писали про синхронность (в случае генералов) и асинхронность( в случае банков). В асинхронном случае
все заработает при доступности каналов, в синхронном не так.
Кодом людям нужно помогать!
Re[6]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 11:14
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Потому что решение (вернее его отсутствие) формулируется в дискретных величинах — да или нет.

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

Немного напомнило задачи Зенона.

Тут еще как рассматривать вероятность. Если рассматривать что вероятность доставки сообщения 99.5% — это одно. В таком раскладе возможен вариант, что даже 1 млрд. раз подряд сообщение не доставлено, пусть и маловероятно. Если же рассматривать вероятность доступности канала не менее 99.5% времени в год — то ситуация сильно меняется — в худшем раскладе лишь 2 дня в году канал не доступен, а значит имеем гарантию.
Отредактировано 28.10.2021 11:15 Shmj . Предыдущая версия . Еще …
Отредактировано 28.10.2021 11:15 Shmj . Предыдущая версия .
Re[6]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 11:23
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Выше уже писали про синхронность (в случае генералов) и асинхронность( в случае банков). В асинхронном случае

S>все заработает при доступности каналов, в синхронном не так.

А если генералы заранее договорились об асинхронном варианте? Можно ли так?

К примеру, назначали 1 генерала — только он отправляет посыльного. Второй лишь ждет. Посыльный пройдет путь туда-обратно максимум за 1 час. Если пришел первый посыльный и через 1.5 часа не пришел новый, значит:

1. 1 успешно дошел назад и время согласовано, нового посылать нет смысла.
2. Новый посыльный не дошел.

И далее как мы рассматриваем вероятности. Если рассматривать, что вероятность доставки сообщения 99.5% — это одно. В таком раскладе возможен вариант, что даже 1 млрд. раз подряд сообщение не доставлено, пусть и маловероятно. Если же рассматривать вероятность доступности канала не менее 99.5% времени в год — то ситуация сильно меняется — в худшем раскладе лишь 2 дня в году канал не доступен, а значит имеем гарантию.
Re[7]: Про задачу 2 генералов в реальной жизни...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.10.21 11:27
Оценка:
Здравствуйте, Shmj, Вы писали:

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


G>>Потому что решение (вернее его отсутствие) формулируется в дискретных величинах — да или нет.

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

S>Немного напомнило задачи Зенона.


S>Тут еще как рассматривать вероятность. Если рассматривать что вероятность доставки сообщения 99.5% — это одно. В таком раскладе возможен вариант, что даже 1 млрд. раз подряд сообщение не доставлено, пусть и маловероятно.

Как обычно есть правило трех-шести-десяти сигм.

S>Если же рассматривать вероятность доступности канала не менее 99.5% времени в год — то ситуация сильно меняется — в худшем раскладе лишь 3 дня в году канал не доступен, а значит имеем гарантию.

Процент доступности это не время когда доступен, а когда нет, это вероятность доставки пакетов.

Тут наступает архитектура:
1) А надо ли нам вообще сразу давать ответ или мы можем повторять сообщение пока оно не доставится? Ведь даже при доступности в 80% надо совсем немного повторений, чтобы получить вероятность единичной доставки в 99.99% (помним что банковские переводы несинхронны)
2) Может у нас есть другой канал, более медленный, но более надежный (сверки по бухгалтерии)
3) А может есть посредник который возьмет на себя функцию согласования, которому мы достаточно доверяем? (цетробанк\swift\visa\СБП) А он уже организует достаточно надежные каналы, повторения, сети доверия итд.

А потом наступает экономика: если всетаки случится ошибка, то сколько нам будет стоить её исправление? Имеет ли смысл повышать надежность канала или будет слишком дорого?
Re[8]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 11:40
Оценка:
Здравствуйте, gandjustas, Вы писали:

G>Процент доступности это не время когда доступен, а когда нет, это вероятность доставки пакетов.


Разве? Вроде в SLA гарантируется именно время в месяц или в год — с компенсацией деньгами в случае нарушения.

G>Тут наступает архитектура:

G>1) А надо ли нам вообще сразу давать ответ или мы можем повторять сообщение пока оно не доставится? Ведь даже при доступности в 80% надо совсем немного повторений, чтобы получить вероятность единичной доставки в 99.99% (помним что банковские переводы несинхронны)

И тут вопрос — если договориться что будем повторять бесконечно, если не получили ответ — то это значит, что если дятел не стучит — значит ответ получен. Так же выгоднее?

G>3) А может есть посредник который возьмет на себя функцию согласования, которому мы достаточно доверяем? (цетробанк\swift\visa\СБП) А он уже организует достаточно надежные каналы, повторения, сети доверия итд.


Тут важна принципиальная разрешимость — ведь 100% надежных каналов не бывает.
Re[7]: Про задачу 2 генералов в реальной жизни...
От: Sharov Россия  
Дата: 28.10.21 11:46
Оценка:
Здравствуйте, Shmj, Вы писали:

S>>Выше уже писали про синхронность (в случае генералов) и асинхронность( в случае банков). В асинхронном случае

S>>все заработает при доступности каналов, в синхронном не так.
S>А если генералы заранее договорились об асинхронном варианте? Можно ли так?

Задача как формулируется? Они же оба хотят напасть одновременно, т.е. есть ограничение на верхнюю границу.
Асинхронный вариант по сути никаких временных гарантий и ограничений не дает.
Кодом людям нужно помогать!
Re: Про задачу 2 генералов в реальной жизни...
От: maxkar  
Дата: 28.10.21 12:15
Оценка:
Здравствуйте, Shmj, Вы писали:

S>Но существует же алгоритм, благодаря которому имеем 100% достоверность, что действия будут согласованы и на 100% деньги не исчезнут одновременно с двух счетов а так же не удвоятся, не смотря на то что канал связи не надежен?

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

S>Но тут какая проблема. Откуда банк 2 знает что банк 1 получил успешный ответ? Вдруг не получил? Значит банк 2 должен сделать запрос к банку 1. Но это очень похоже на задачу двух генералов этих, которая вроде как неразрешима.

А зачем ему это? Транзакция пришла — записали, деньги можно использовать. Получение ответа нужно банку 1 для закрытия холдированных средств. Закрытие может быть как успешный перевод (подтверждение получено) и как возврат средств на исходный счет (получена ошибка). До получения понятного ответа деньги так и будут "зависшими".

S>Или же наличие ответственного в принятии решений как бы делает задачу разрешимой?

Это другая задача. И, как уже в теме сказали, есть резервные механизмы. Транзакция может синхронизироваться через выписки или вручную. Т.е. "гарантии" решаются использованием альтернативных каналов. В случае, если они все вышли из строя — синхронизации не будет.
Re[3]: Про задачу 2 генералов в реальной жизни...
От: samius Япония http://sams-tricks.blogspot.com
Дата: 28.10.21 14:27
Оценка:
Здравствуйте, Shmj, Вы писали:

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


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


S>Ну, из-за проблем канала связи — не будет пол года. Это что, за пол года так и не восстановили канал связи? Что если исходить из гарантии 99.5% доступности канала связи на каждой из сторон — можно ли сказать, что в течение 5 дней при любом раскладе транзакция будет завершена?


Вот я сейчас обслуживаюсь в банке, где скорость (валютного) перевода зависит в основном от того, настучала ли одна клава в головном офисе другой в доп офисе по аське, или забыла. Меня в принципе устраивает в этом лишь тариф. В другом банке, где все автоматизировано, услуга на голову дороже. Т.е. потерять могут даже при 100% канале связи, т.к. включен человеческий фактор. Был случай, когда деньги мне приходили уже в тот день, когда они должны были бы отправиться обратно, если бы валютный контроль не получил от меня документов по этим деньгам в тот же день. А на это дается 2 недели (вроде бы даже банковских).
Пол года — дается как раз на расследование. Т.е., допустим, если я уверен что отправитель деньги отправил, а я их не получил, начинаю заводить телегу по поиску денег. Пишу заявление, везу его в банк, они его читают, кладут в стопку, там оно лежит с месяц, пока до него не дойдет очередь. Ну т.е. пол года на расследование, куда дели деньги — вполне себе.

S>99.5% гарантия доступности — это значит что максимум 2 дня в год не будет связи. Даже в худшем варианте — 2 дня один банк сидел без канала, потом сразу 2 дня другой — совпал худший сценарий. Но потом на 5 день 100% проведена будет — при самом худшем раскладе.

Если бы в банках только лишь от связи все зависело... Прихожу однажды, а там нет всего отдела по борьбе с юрлицами, вместо отдела один стажер весь в соплях и заваленный бумагами и звонками.
Re[8]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 15:35
Оценка:
Здравствуйте, Sharov, Вы писали:

S>Задача как формулируется? Они же оба хотят напасть одновременно, т.е. есть ограничение на верхнюю границу.

S>Асинхронный вариант по сути никаких временных гарантий и ограничений не дает.

В чем разница — согласовать сумму денег или согласовать время?

Тут смотрите как. Если мы знаем что канал работает не менее чем 99.95% времени в день, скажем. Имеем такую гарантию. Это что-то меняет?

Такая схема:

1. Определяем главного генерала.
2. Главный генерал передает сообщение с указанием даты/времени.
3. Второй генерал подтверждает и так же понимает, что первый генерал если не получит его подтверждение — пошлет посыльного/сообщение еще раз.
4. Второй генерал больше не получает посыльных и знает что канал работает 99.95% времени — а значит не может такого быть, чтобы целый день при работающем канале посыльные больше не приходили. Значит первый генерал на 100% получил его одобрение.

В чем подвох?
Re[9]: Про задачу 2 генералов в реальной жизни...
От: gandjustas Россия http://blog.gandjustas.ru/
Дата: 28.10.21 15:38
Оценка:
Здравствуйте, Shmj, Вы писали:

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


G>>Процент доступности это не время когда доступен, а когда нет, это вероятность доставки пакетов.

S>Разве? Вроде в SLA гарантируется именно время в месяц или в год — с компенсацией деньгами в случае нарушения.
Это SLA, чтобы его посчитать можно было. А при проектировании проценты доступности стоит принимать как вероятность успешной передачи сообщения.


G>>Тут наступает архитектура:

G>>1) А надо ли нам вообще сразу давать ответ или мы можем повторять сообщение пока оно не доставится? Ведь даже при доступности в 80% надо совсем немного повторений, чтобы получить вероятность единичной доставки в 99.99% (помним что банковские переводы несинхронны)
S>И тут вопрос — если договориться что будем повторять бесконечно, если не получили ответ — то это значит, что если дятел не стучит — значит ответ получен. Так же выгоднее?
Спроси у разработчиков TCP (они предпочитают получать подтверждение доставки)

G>>3) А может есть посредник который возьмет на себя функцию согласования, которому мы достаточно доверяем? (цетробанк\swift\visa\СБП) А он уже организует достаточно надежные каналы, повторения, сети доверия итд.

S>Тут важна принципиальная разрешимость — ведь 100% надежных каналов не бывает.
Не бывает, но бывает достаточно много ресурсов чтобы сделать вероятность потери сообщения настолько низкой, что она на практике не встретится.
Re[2]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 15:44
Оценка:
Здравствуйте, maxkar, Вы писали:

S>>Или же наличие ответственного в принятии решений как бы делает задачу разрешимой?

M>Это другая задача. И, как уже в теме сказали, есть резервные механизмы. Транзакция может синхронизироваться через выписки или вручную. Т.е. "гарантии" решаются использованием альтернативных каналов. В случае, если они все вышли из строя — синхронизации не будет.

Можно ли решить средствами 1 канала, который доступен 99.95% времени гарантированно за определенный срок (гарантировать что синхронизация пройдет не позже чем n времени в худшем случае)?
Re[4]: Про задачу 2 генералов в реальной жизни...
От: Shmj Ниоткуда  
Дата: 28.10.21 15:45
Оценка:
Здравствуйте, samius, Вы писали:

S>Пол года — дается как раз на расследование. Т.е., допустим, если я уверен что отправитель деньги отправил, а я их не получил, начинаю заводить телегу по поиску денег. Пишу заявление, везу его в банк, они его читают, кладут в стопку, там оно лежит с месяц, пока до него не дойдет очередь. Ну т.е. пол года на расследование, куда дели деньги — вполне себе.


Ну это уже не проблема канала связи. Канал связи то никак не может не работать пол года, верно?
Re[9]: Про задачу 2 генералов в реальной жизни...
От: Sharov Россия  
Дата: 28.10.21 15:54
Оценка: +1
Здравствуйте, Shmj, Вы писали:

S>1. Определяем главного генерала.

S>2. Главный генерал передает сообщение с указанием даты/времени.
S>3. Второй генерал подтверждает и так же понимает, что первый генерал если не получит его подтверждение — пошлет посыльного/сообщение еще раз.
S>4. Второй генерал больше не получает посыльных и знает что канал работает 99.95% времени — а значит не может такого быть, чтобы целый день при работающем канале посыльные больше не приходили. Значит первый генерал на 100% получил его одобрение.
S>В чем подвох?

В том, что если мы хотим что-то решить синхронно, за фиксированный интервал времени, то вынужденны
оперировать вероятностями. Нету дискретных да\нет. В асинхронном случае мы по времени не ограничены
(т.е. ограничены, конечно, но никак в синх. случае).
Кодом людям нужно помогать!
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.