Изменения

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

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

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

Навигация