Распределенные автоматизированные системы
Лычёв А.В. © изд-во ВМИРЭ © 2007 год
194
рии для осуществления повторных передач без связи с процес-
сом-отправителем.
2. Неиерархическое управление обратной связью. В этом
способе управления используется модель подавления откликов.
Процесс-получатель никогда не подтверждает успешного приема
сообщения, посылая только запросы на повторную передачу при
потере сообщения. Отслеживание факта потери сообщения осу-
ществляется процессом-получателем. Когда процесс-получатель
обнаруживает, что потерял сообщение, он осуществляет груп-
повую рассылку запроса на повторную передачу всем членам
группы. Процесс-получатель, потерявший сообщение, но полу-
чивший от другого процесса группы запрос на повторную пере-
дачу того же сообщения, сам отказывается от посылки запроса
на повторную передачу. Для предотвращения одновременной по-
сылки запроса на повторную передачу несколькими процессами,
посылка такого запроса осуществляется со случайной по вре-
мени задержкой. В идеале до процесса-отправителя доходит
только один запрос на повторную передачу. Повторная переда-
ча при этом осуществляется также групповой рассылкой.
Недостаток неиерархического управления обратной связью
заключается в необходимости обработки групповых рассылок
запроса на повторную передачу и самой повторной передачи
процессами, успешно получившими исходное сообщение. Данный
недостаток преодолевается выделением процессов-получателей,
потерявших сообщение, в отдельную группу, что, в свою оче-
редь, сложно реализуемо в больших системах.
При наличии отказов в процессах может возникнуть си-
туация, что обновление состояния работающего объекта про-
изойдет в момент его отказа, и после перезагрузки процесса,
он продолжит работать со старой не обновленной версией со-
стояния объекта. Для предотвращения этой ситуации применя-
ется атомарная групповая рассылка. Атомарность групповой
рассылки означает, что операция обновления реплик, начатая
до того, как произошла поломка одной из них, будет выполне-
на корректно на всех работающих репликах или не будет вы-
полнена ни на одной из них. Атомарность групповой рассылки
требует, чтобы при отказе одного из процессов группы, ос-
тавшиеся работающие процессы заключали новое соглашение о
членстве в группе. После перезагрузки отказавшего процесса
он должен снова войти в группу, так как иначе в его адрес
не будет производиться групповая рассылка. Вход в группу
требует приведение состояния объекта в соответствие с со-
стоянием остальных членов группы.
Проблема атомарной групповой рассылки заключается в
возможности одновременной рассылки обновлений и извещений
об отказах процессов, что может привести к неоднозначной
интерпретации процессами ситуации в системе. Атомарная