Обзор

Задание: Инструментирование Распределенной Системы с Использованием RTT 🌐#

(Наблюдение за Согласованностью Без Координации)

Цель#

В этом задании вы оснастите распределенную систему для наблюдения за согласованностью во времени с использованием идей, вдохновленных RTT.

Вы не будете:

  • обеспечивать согласованность
  • исправлять сбои
  • добавлять протоколы координации
  • оптимизировать производительность

Ваша цель — сделать предположения видимыми между узлами.


Фон (Почему RTT подходит для распределенных систем)#

Распределенные системы терпят неудачу не потому, что отсутствуют правила, а потому что:

  • время непоследовательно
  • предположения расходятся между узлами
  • границы пересекаются без предупреждения

RTT рассматривает это как проблемы согласованности, а не проблемы управления.


Настройка#

Используйте любой из следующих вариантов:

  • хранилище ключ‑значение (игрушечное или реальное)
  • систему передачи сообщений
  • реплицируемый сервис
  • симулятор консенсуса
  • распределённую лабораторную платформу, предоставленную вашим преподавателем

Вы можете симулировать узлы на одной машине.


Обзор задачи#

Вы будете:

  1. Объявить распределенное предположение
  2. Определить коридор согласованности
  3. Наблюдать граничные события
  4. Выдавать значки при отклонении предположений
  5. Не делать ничего другого

Шаг 1: Объявите распределенное предположение 🧠#

Выберите одно предположение, которое ваша система подразумевает.

Примеры:

  • “Все реплики в конечном итоге видят одно и то же значение.”
  • “Сообщения доставляются в пределах ограниченного времени.”
  • “Лидеры уникальны в любой момент.”
  • “Часы достаточно близки, чтобы сравнивать временные метки.”
  • “Запросы обрабатываются в причинном порядке.”

Запишите это предположение в одно предложение.


Шаг 2: Определите коридор согласованности 🛤️#

Опишите, как выглядит нормальное поведение со временем и между узлами.

Примеры:

  • Максимально допустимая задержка сообщения
  • Допустимое окно расхождения между репликами
  • Ожидаемый интервал сердцебиения
  • Допустимое смещение часов

Этот коридор определяет ожидаемую согласованность, а не корректность.


Шаг 3: Наблюдение за границей 🔄#

Определите где предположение может отклониться.

Примеры:

  • отправка / получение сообщения
  • обновление реплики
  • выбор лидера
  • истечение времени ожидания
  • синхронизация состояния

Добавьте инструментирование только на этой границе.


Шаг 4: Выдача значка 🏷️#

Когда поведение покидает коридор, выдайте значок.

Значок должен включать:

  • что произошло
  • какой узел это наблюдал
  • когда это было замечено (местное время подходит)
  • соответствующий контекст (ИД, версии, задержки)

Пример (концептуальный):

[BADGE]
type: COHERENCE_DRIFT
module: replication
node: replica_3
context: version_lag_exceeded
timestamp: 48291

Значки могут быть зарегистрированы локально или собраны централизованно.


Шаг 5: Не координируйте 🚫#

Это критично.

Ваша система должна:

  • не пытаться снова
  • не переизбирать
  • не повторно синхронизироваться
  • не блокировать прогресс

Только наблюдение.


Результаты 📦#

Предоставьте:

  1. Ваши заявленные предположения и коридор
  2. Код инструментирования
  3. Вывод образца значка с нескольких узлов
  4. Краткое размышление (5–7 предложений):
    • Произошло ли дрейфование?
    • Было ли оно симметричным между узлами?
    • Имело ли время большее значение, чем состояние?

Критерии оценки#

Вас оценивают по:

  • ясности предположения
  • правильности наблюдения
  • полезности контекста значка
  • сдержанности (без управляющей логики)

Вас не оценивают по:

  • гарантиям согласованности
  • устойчивости к сбоям
  • производительности

Почему это важно#

Большинство распределенных сбоев не являются ошибками — это незамеченное расхождение.

RTT обучает вас:

  • видеть расхождение до координации
  • разделять наблюдение и согласие
  • явно рассуждать о времени

Эти навыки применимы к:

  • базам данных
  • системам консенсуса
  • микросервисам
  • распределенным системам ИИ

Дополнительное расширение 🌱#

Введение:

  • задержка сети
  • потеря сообщений
  • сдвиг часов

Наблюдайте, как изменяются шаблоны значков.

Не “исправляйте” ничего.


Заметка инструктора#

Это задание хорошо сочетается с лекциями по:

  • конечной согласованности
  • компромиссам CAP
  • обнаружителям сбоев
  • логическому и физическому времени

Студенты часто обнаруживают, что время, а не логика, является самой сложной частью.

Updated