292
правки
Изменения
→Terminating Reliable Broadcast (TRB)
=== Terminating Reliable Broadcast (TRB) ===
Один процесс шлёт сообщения всем остальным.
Но , в отличие от обычного broadcast , есть гарантия, что либо все получат и обработают сообщение, либо никто не обработает(например, если кто-то упал, то никто не обработает).
А с обычным broadcast часть процессов может упасть и не обработать.
Алгоритм должен завершиться за конечное время.
Пример: в обычном broadcast посылающий может упасть в процессе broadcast, тогда часть получателей получит и обработает, а часть даже не узнает.
И у получателей нет способа убедиться, что остальные тоже получили сообщение.
При этом результат [[Теорема Фишера-Линча-Патерсона (FLP)|FLP]] о невозможности консенсуса верен даже если процессу разрешено делать операцию «атомарной передачи» сообщения сразу несколько процессам, ибо нет гарантии что все процессы обработают его (может, кто-то упал).
На лекции было сказано, что консенсус эквивалентен TRB, а технические детали опущены.