Задание: Инструментирование Распределенной Системы с Использованием RTT 🌐#
(Наблюдение за Согласованностью Без Координации)
Цель#
В этом задании вы оснастите распределенную систему для наблюдения за согласованностью во времени с использованием идей, вдохновленных RTT.
Вы не будете:
- обеспечивать согласованность
- исправлять сбои
- добавлять протоколы координации
- оптимизировать производительность
Ваша цель — сделать предположения видимыми между узлами.
Фон (Почему RTT подходит для распределенных систем)#
Распределенные системы терпят неудачу не потому, что отсутствуют правила, а потому что:
- время непоследовательно
- предположения расходятся между узлами
- границы пересекаются без предупреждения
RTT рассматривает это как проблемы согласованности, а не проблемы управления.
Настройка#
Используйте любой из следующих вариантов:
- хранилище ключ‑значение (игрушечное или реальное)
- систему передачи сообщений
- реплицируемый сервис
- симулятор консенсуса
- распределённую лабораторную платформу, предоставленную вашим преподавателем
Вы можете симулировать узлы на одной машине.
Обзор задачи#
Вы будете:
- Объявить распределенное предположение
- Определить коридор согласованности
- Наблюдать граничные события
- Выдавать значки при отклонении предположений
- Не делать ничего другого
Шаг 1: Объявите распределенное предположение 🧠#
Выберите одно предположение, которое ваша система подразумевает.
Примеры:
- “Все реплики в конечном итоге видят одно и то же значение.”
- “Сообщения доставляются в пределах ограниченного времени.”
- “Лидеры уникальны в любой момент.”
- “Часы достаточно близки, чтобы сравнивать временные метки.”
- “Запросы обрабатываются в причинном порядке.”
Запишите это предположение в одно предложение.
Шаг 2: Определите коридор согласованности 🛤️#
Опишите, как выглядит нормальное поведение со временем и между узлами.
Примеры:
- Максимально допустимая задержка сообщения
- Допустимое окно расхождения между репликами
- Ожидаемый интервал сердцебиения
- Допустимое смещение часов
Этот коридор определяет ожидаемую согласованность, а не корректность.
Шаг 3: Наблюдение за границей 🔄#
Определите где предположение может отклониться.
Примеры:
- отправка / получение сообщения
- обновление реплики
- выбор лидера
- истечение времени ожидания
- синхронизация состояния
Добавьте инструментирование только на этой границе.
Шаг 4: Выдача значка 🏷️#
Когда поведение покидает коридор, выдайте значок.
Значок должен включать:
- что произошло
- какой узел это наблюдал
- когда это было замечено (местное время подходит)
- соответствующий контекст (ИД, версии, задержки)
Пример (концептуальный):
[BADGE]
type: COHERENCE_DRIFT
module: replication
node: replica_3
context: version_lag_exceeded
timestamp: 48291Значки могут быть зарегистрированы локально или собраны централизованно.
Шаг 5: Не координируйте 🚫#
Это критично.
Ваша система должна:
- не пытаться снова
- не переизбирать
- не повторно синхронизироваться
- не блокировать прогресс
Только наблюдение.
Результаты 📦#
Предоставьте:
- Ваши заявленные предположения и коридор
- Код инструментирования
- Вывод образца значка с нескольких узлов
- Краткое размышление (5–7 предложений):
- Произошло ли дрейфование?
- Было ли оно симметричным между узлами?
- Имело ли время большее значение, чем состояние?
Критерии оценки#
Вас оценивают по:
- ясности предположения
- правильности наблюдения
- полезности контекста значка
- сдержанности (без управляющей логики)
Вас не оценивают по:
- гарантиям согласованности
- устойчивости к сбоям
- производительности
Почему это важно#
Большинство распределенных сбоев не являются ошибками — это незамеченное расхождение.
RTT обучает вас:
- видеть расхождение до координации
- разделять наблюдение и согласие
- явно рассуждать о времени
Эти навыки применимы к:
- базам данных
- системам консенсуса
- микросервисам
- распределенным системам ИИ
Дополнительное расширение 🌱#
Введение:
- задержка сети
- потеря сообщений
- сдвиг часов
Наблюдайте, как изменяются шаблоны значков.
Не “исправляйте” ничего.
Заметка инструктора#
Это задание хорошо сочетается с лекциями по:
- конечной согласованности
- компромиссам CAP
- обнаружителям сбоев
- логическому и физическому времени
Студенты часто обнаруживают, что время, а не логика, является самой сложной частью.