Кратко
- RFC 992 предложил рассылать известия о сбое и восстановлении как упорядоченные сообщения группе процессов, чтобы действующие участники видели одну последовательность смены состава.
- GBCAST согласовывал состав группы, ABCAST — порядок общих операций, CBCAST — причинные зависимости, сохраняя свободу для независимых сообщений.
Представим очередь заданий в трёх копиях. Клиент просит удалить первый пункт. Пока запрос идёт по сети, одна машина выключается. Первая из оставшихся видит запрос до известия о сбое, вторая — после. Каждая действует разумно по своей версии событий, а итоговые очереди уже разные. Аппаратура выдержала аварию; общая история сервиса — нет. Избыточность превращается в двух свидетелей, которые поклялись говорить правду и всё равно противоречат друг другу.
Kenneth Birman и Thomas Joseph разбирали эту гонку в RFC 992, опубликованном в ноябре 1986 года на основе работы над ISIS в Корнелле. RFC 966 и RFC 988 уже говорили о группах хостов и многоадресной доставке. Новая трудность возникала тогда, когда список получателей менялся прямо во время передачи. Сообщение, адресованное «группе», должно было попасть к участникам с согласованным пониманием того, кто в эту группу входил.
Самый строгий инструмент назывался GBCAST. Вернувшийся процесс сообщал о восстановлении; за упавший процесс известие рассылала система. Покойнику назначили пресс-секретаря. Известие ставилось в порядок вместе с обычными сообщениями. Если один участник видел рабочий запрос до объявления о сбое, общие получатели видели их в том же порядке. Ранее отправленные сообщения погибшего процесса предшествовали объявлению о его гибели. Каждый участник вёл VIEW — список членов группы. Списки не менялись одновременно по всем часам, зато проходили одну и ту же последовательность изменений.
При получении конкретного сообщения участники опирались на согласованную версию состава.
Такая дисциплина стоила дорого, и авторы предложили ещё два инструмента. ABCAST доставлял сообщения с одинаковой меткой в одинаковом порядке общим адресатам: реплики очереди могли согласованно применять операции. CBCAST сохранял порядок там, где одно сообщение могло повлиять на другое, и отпускал независимые сообщения работать параллельно. Для каждого дела — своя цена согласования. Если заставить весь трафик маршировать по самому строгому строю, устойчивый сервис рискует устать раньше первой аварии.
Исследование предполагало остановочные сбои и механизм их обнаружения. Примеры с точностью часов рабочих станций и задержками между узлами отражали лабораторные условия 1980-х: опора только на время плохо решала гонку быстрых сообщений. Авторы упоминали завершённый ранний прототип ISIS и новую реализацию в работе. Главное историческое наблюдение оказалось шире набора аббревиатур: когда исчезновение участника меняет смысл приказа, сообщение об исчезновении должно жить внутри того же порядка доставки.
Упавшая машина пропустила совещание. Остальным хотя бы выдали одинаковый протокол заседания.
Обзор для участников
Подробный контекст профиля
Войдите с подходящим уровнем подписки, чтобы открыть полный обзор и примечания к источникам.
Только для Стратегического сообщества
Стратегическое сообщество
Открыто всем читателям. Вступите и войдите, чтобы открыть обзоры профилей.
Вступить в Стратегическое сообществоТолько для Альянса лидеров
Альянс лидеров
Для проверенных владельцев IP-активов и руководителей. Войдите, чтобы открыть обзоры Альянса.
Вступить в Альянс лидеров





