Узлы-инициаторы в распределенной системе - PullRequest
1 голос
/ 05 января 2020

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

Вопрос, который был задан точно:

«Напишите программу, чтобы выяснить все возможные узлы инициатора для алгоритма записи состояния в распределенной системе».

Я хочу упомянуть, что мы изучили алгоритм глобальной регистрации состояний Чэнди - Лампорта в нашем курсе распределенной операционной системы. Я написал код для Чанди - алгоритм записи глобального состояния Лампорта для другого назначения.

Что означает этот узел инициатора? Я думал, что те узлы, которые записали свои соответствующие состояния. Я прав? Я должен написать код в java. Пожалуйста, предложите мне подход или алгоритм для подражания.

1 Ответ

1 голос
/ 06 января 2020

Согласно странице Википедии об алгоритме Чанди-Лампорта :

Допущения алгоритма следующие:

  • Есть без сбоев и все сообщения приходят без изменений и только один раз
  • Каналы связи однонаправлены и упорядочены по FIFO
  • Между любыми двумя процессами в системе существует канал связи
  • Любой процесс может инициировать алгоритм моментального снимка
  • Алгоритм моментального снимка не мешает нормальному выполнению процессов
  • Каждый процесс в системе записывает свое локальное состояние и состояние своих входящих каналов

Алгоритм работает с использованием маркерных сообщений. Каждый процесс, который хочет инициировать моментальный снимок, записывает свое локальное состояние и отправляет маркер на каждый из своих исходящих каналов. Все остальные процессы после получения маркера записывают свое локальное состояние, состояние канала, из которого маркер только что вышел, как пустой, и отправляют сообщения маркера по всем их исходящим каналам. Если процесс получает маркер после записи своего локального состояния, он записывает состояние входящего канала, с которого пришел маркер, как несущий все сообщения, полученные с момента первой записи его локального состояния.

You используют немного другую терминологию для описания в Википедии, но я предполагаю, что ваши "узлы" соответствуют "процессам" в приведенном выше. Таким образом, «узел инициатора» - это просто узел, который инициирует (запрашивает) моментальный снимок.

Если это то, что означает ваша терминология, то с алгоритмом Ченди-Лампорта любой узел может быть узлом-инициатором. Следовательно, ответ на вопрос «все».

Но, учитывая тривиальную природу ответа / решения, я подозреваю, что это не то, что на самом деле означает ваше задание. Либо вы пропустили какой-то контекст, либо задание искажено. Я предлагаю вам спросить своего инструктора.

(Или ... может быть, это "вопрос с подвохом".)

...