Реферат: Распределенные алгоритмы
После завершения Алгоритма 13.1 каждый корректный процесс получил набор преемников каждого из своих потомков, позволяя таким образом вычислить уникальный узел в G.
Согласие и выбор. Поскольку все корректные процессы договариваются об узле корректных процессов, избрать процесс теперь тривиально; избирается процесс с самым большим идентификатором в K. Теперь так же просто достигнуть согласия. Каждый процесс вещает, вместе со своими преемниками, свой вход (x). После вычисления K, процессы принимают решение о значении, которое является функцией совокупности входов в K (например, значение, которое встречается наиболее часто, ноль в случае ничьей).
Алгоритмы узел-соглашения, согласия, и выбора обменивают сообщениями, где сообщение
может содержать список из L имен процессов. Были предложены более эффективные
алгоритмы выбора. Итаи и другие [IKWZ90] привели алгоритм, использующий
сообщения и показали, что
это является нижней границей. Масузава и другие [MNHT89] рассмотрели проблему
для клик с чувством направления и предложили алгоритм
сообщений, который также
является оптимальным.
Любой алгоритм выбора, выбирая корректный процесс в качестве лидера также решает проблему согласия; лидер вещает свой вход и все корректные процессы принимают решения по нему. Следовательно, вышеупомянутые верхние границы остаются в силе также для проблемы согласия для изначально-мертвых процессов. В модели аварий, однако, наличие лидера не помогает в решении проблемы согласия; сам лидер может отказать до вещания своего входа. Кроме того, проблема выбора не разрешима в модели аварийного отказа, что будет показано в следующем разделе.
13.3 Детерминированно Достижимые Случаи
Проблема согласия, изучаемая до сих пор, требует, чтобы каждый процесс принял решение об одном и том же значении; этот раздел изучает разрешимость задач, которые требуют менее близкой координации между процессами. В Подразделе 13.3.1 представлено решение практической проблемы, а именно, переименование совокупности процессов в малом пространстве имен. В Подразделе 13.3.2 выведенные ранее результаты о невозможности расширяются, чтобы охватить больший класс проблем решения.
Распределенная задача описывается множествами возможных входных и выходных значений X и D, и (возможно частичным) отображением
.
Интерпретация отображения T: если вектор описывает вход процессов,
то
- набор допустимых выходов
алгоритма, описанный как вектор решения
.
Если T - частичная функция, допустима не каждая комбинация входных значений.
Определение 13.10 Алгоритм является t-аварийно устойчивым решением для задачи T если он удовлетворяет следующим утверждениям.
(1) Завершение. В каждом t-аварийно законном выполнении, все корректные процессы принимают решение.
(2)
Непротиворечивость. Если все процессы корректны, вектор
решения находится в
.
Условие непротиворечивости подразумевает, что в выполнении, где
подмножество процессов принимает решение, частичный вектор решений всегда можно
расширить до вектора в . Множество
обозначает совокупность
всех векторов выхода, то есть, диапазон T.
(1) Пример: согласие. Проблема согласия требует, чтобы все решения были равны, т.е.,
.
(2) Пример: выбор. Проблема выбора требует, чтобы один процесс принял решение 1, а другие 0, т.е.,
.
(3)
Пример: приблизительное соглашение. В проблеме -приблизительного
соглашения каждый процесс имеет действительное входное значение и принимает
решение о действительном выходном значении. Максимальное различие между двумя
значениями выхода самое большее e, и выходы должны быть заключены между двумя
входами.
.
(4) Пример: переименование. В проблеме переименования каждый процесс имеет отдельный идентификатор, который может браться из произвольно большой области. Каждый процесс должен принять решение о новом имени, из меньшей области 1, ..., K, так, чтобы все новые имена различались.
.
В сохраняющей порядок версии проблемы переименования,
новые имена должны сохранять порядок старых имен, то есть, .
13.3.1 Разрешимая Проблема: Переименование
В этом подразделе будет представлен алгоритм для переименования
Аттийи и других [ABND+90]. Алгоритм допускает до аварий
(t - параметр алгоритма) и осуществляет переименование в пространстве имен
размера
.
Верхняя граница t. Мы сначала покажем, что никакой алгоритм переименования не сможет выдержать N/2 или большее количество сбоев; фактически, почти все аварийно-устойчивые алгоритмы имеют ограничение t<N/2 на число неисправностей, и приведенное ниже доказательство можно адаптировать к другим проблемам.
Теорема 13.11 При алгоритмов для
переименования не существует.
Доказательство. Если ,
можно сформировать две непересекающихся группы процессов S и T размера N-t. Вследствие возможности сбоя t процессов, группа должна
уметь принимать решение "самостоятельно", то есть, без взаимодействия
с процессами вне группы (см. Утверждение 13.4). Но тогда группы могут независимо
достичь решения в одиночном выполнении; сложный момент доказательства -
показать, что эти решения могут быть взаимно противоречивы. Мы продолжим формальную
аргументацию для случая переименования.
По утверждению 13.4, для каждой начальной конфигурации существует конфигурация
такая, что все процессы в S
приняли решение и
; то же
справедливо и для T. Действие алгоритма внутри группы из N-t процессов
определяет отношение векторов из N-t начальных идентификаторов к векторам из N-t новых имен. Так как начальное пространство имен
неограниченно, и новые имена получаются из ограниченного диапазона, то имеются
непересекающиеся входы, которые отображаются на перекрывающиеся выходы. То
есть, имеются входные векторы (длины N-t)
и
такие, что
для всех i,
j, но им соответствуют векторы выхода
и
такие, что
, для некоторых i, j.
Некорректное выполнение теперь создается следующим образом.
Начальная конфигурация имеет входы
в группе S и
в группе T; заметьте, что
все начальные имена различны (начальные имена вне обеих групп могут быть выбраны
произвольно). Пусть
-
последовательность шагов, которыми группа T достигает, из
, конфигурации
, в которой процессы в T
остановились (приняли решение) на именах
.
По утверждению 13.1, эта последовательность все еще применима в конфигурации
, в которой процессы в S
остановились на именах
. В
, два процесса остановились
на одном и том же имени (потому что
), что указывает
на противоречивость алгоритма. o
Далее предполагается, что t < N/2.
var : set of identities;
Страницы: 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 41, 42, 43, 44, 45, 46, 47, 48, 49, 50, 51, 52, 53, 54, 55, 56, 57, 58, 59, 60, 61, 62, 63, 64, 65, 66, 67, 68, 69, 70, 71, 72, 73, 74, 75, 76, 77, 78, 79, 80, 81, 82, 83, 84, 85, 86, 87, 88, 89, 90, 91, 92, 93, 94, 95, 96, 97, 98, 99, 100, 101, 102, 103, 104, 105