Кратко

  • draft-dikshit-netconf-yang-push-causal-ordering-00 предлагает физическую и логическую части HLC для сравнения уведомлений разных издателей. Локальный счётчик выявляет проблемы своей серии, но не создаёт общего масштаба.
  • HLC сохраняет известную причинную последовательность: если e happened-before f, часы e меньше. Обратный вывод неверен; параллельные события тоже получают порядок, а одинаковые пары нуждаются во внешнем разрешении ничьей.
  • Ни порядок, ни отметка времени не разрешают действие. Нужны отдельные данные об издателе и эпохе, пробелах, часах, зависимостях, охвате, текущем состоянии, ответственном лице, проверке ресурса, исполнении и наблюдаемом результате.

Сначала был узкий счётчик

Монотонный номер на одного издателя решает полезную локальную задачу. Пропуск значения требует проверить потерю. Позднее меньшее значение требует отличить задержку от повтора. Но номер 600 издателя A нельзя сопоставить с номером 30 издателя B: процессы считают разные события от разных начал.

Редакция 00 предлагает HLC как компактный общий ключ. Физическая часть следует времени, логическая продвигает события, которым достался одинаковый физический отсчёт. Получатель сравнивает пару лексикографически. Предложение также уводит практический горизонт переполнения далеко за жизнь обычной подписки.

Такой ключ удобен для объединения потоков. Он не отвечает, почему возникло событие. Если аналитика превращает первое место в причинную связь, она добавляет смысл, которого поля не передали. Если затем оркестратор использует эту связь для изменения сети, смысл превращается в полномочие без отдельного решения.

Неравенство часов не является стрелкой причины

Исходная работа HLC задаёт свойство в одном направлении. Когда событие e предшествует f по локальному порядку, пересылке сообщения или транзитивной связи, hlc(e) < hlc(f). Известный путь информации не должен быть перевёрнут часами.

Из меньшего значения не следует happened-before. Два изолированных издателя могут наблюдать независимые факты. Разница физических часов поставит один факт раньше. Она не докажет сообщения, общей операции или влияния. Параллельные события получат линейный вид, если продукту нужен список.

Векторные часы несут компоненты участников и дают более сильную проверку: сравнимость отражает причинное предшествование, несравнимость — параллельность. Цена растёт с числом издателей. HLC выбирает постоянный размер и близость ко времени. Это разумный компромисс, если пользователь не читает потерянную информацию обратно из красивой шкалы.

Даже два поля не всегда выбирают первого

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

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

Эпоха защищает и от перезапуска. Имя узла может сохраниться после восстановления снимка, замены или одновременной работы резервов. Получателю нужны аутентифицированный субъект, поколение процесса, способ сохранения состояния часов и сведения о пересечении экземпляров. Знакомое имя не доказывает непрерывность серии.

Часы могут купить место в очереди

Издатель с сильно опережающей физической частью будет постоянно сортироваться позже. Проект предлагает считать подозрительной пару, опережающую часы получателя более чем на настроенный epsilon. Это граница сдерживания, а не удостоверение всех остальных значений.

Сам получатель может потерять синхронизацию. RFC 5905 задаёт механизмы NTP, RFC 9581 переносит структурированное время и заявленное качество. Они не подтверждают событие, честность издателя или причинную связь.

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

До автоматического действия остаётся длинная цепочка

HLC сортирует только доставленные записи. Отсутствующий издатель, фильтр доступа, завершённая подписка, ошибка схемы, транспортный разрыв, объединение обновлений или перегрузка коллектора не обязаны нарушать остальные последовательности. Тихий источник нельзя превращать в отрицательный факт без доказательства его присутствия.

Сортировка также не создаёт единого снимка. Один процесс наблюдает интерфейс до перехода, другой — маршрут после. Оба сообщения локально верны, но их сочетание могло никогда не существовать. Нужен общий барьер, транзакционная версия или явно ограниченное окно с допуском противоречий.

Причинная гипотеза должна назвать связь: сообщение, операцию, зависимость управления или физическую зависимость. Решение должно назвать ответственного, мандат, источники и пробелы, цель, параметры и условие отмены. В первой точке эффекта ресурс заново проверяет состояние и политику. После ответа нужны чтение применённого состояния и независимое наблюдение трафика или услуги.

Успешный ответ управления не доказывает изменение пересылки. Применённая конфигурация не доказывает пользовательский результат. И откат, выбранный по ошибочной причинной линии, способен удалить исправную часть системы, пока первоначальная причина остаётся.

Документ пока только предлагает механизм

Версия 00 датирована 30 августа 2026 года, имеет предполагаемый статус Informational и истекает 1 марта 2027 года. Это индивидуальный Internet-Draft без RFC stream. Datatracker прямо говорит, что IETF его не одобрил и документ не имеет формального положения в процессе стандартов. Это не документ NETCONF WG, не RFC, не реализация и не отчёт об инциденте.

Предложение полезно тем, что раскрывает скрытый выбор агрегатора. Локальные номера действительно нельзя сравнивать. HLC может дать компактный порядок и сохранить уже существующую причинность. Он не превращает числовое предшествование в причину, сортированный набор в полное состояние, а тревогу — в разрешение воздействовать на сеть.

Источники