Изменения

Перейти к: навигация, поиск

Консенсус в распределённой системе

850 байт добавлено, 19:15, 4 сентября 2022
м
rollbackEdits.php mass rollback
[[Категория:Параллельное программирование]]
{{Определение
|definition=
'''Задача консенсуса''': есть N процессов, у каждого есть некие данные — предложение (proposal), они должны выполнить некоторый распределённый алгоритм и прийти к решению (decision). Требуется:
* Согласие (agreement): все не отказавшие (не упавшие навсегда) процессы должны завершиться с решением (decide) и все эти решения должны совпадать.
* Нетривиальность (non-triviality): должны быть варианты исполнения, приводящие к разным решениям(возможно, просто с разными исходными предложениями или разным исходным состоянием процессов).
}}
 
Также можно требовать завершение (termination): протокол должен завершиться за конечное время.
Формальное доказательство, опять же, опущено.
== Выбор лидера Решение при отсутствии отказов ==
== Terminating Reliable Broadcast (TRB) ==Каждый процесс рассылает всем остальным своё предложение.Каждый процесс ждёт предложения остальных, после чего детерминированной функцией выбирает элемент из множества.У остальных процессов получилось такое же множество, такая же функция, следовательно, такой же результат.Работает даже в асинхронной системе, $N^2$ сообщений.
1632
правки

Навигация