Zusammenfassung

  • draft-dikshit-netconf-yang-push-causal-ordering-00 schlägt physische und logische HLC-Komponenten vor, um Meldungen verschiedener YANG-Push-Publisher vergleichbar zu machen. Publisher-lokale Zähler leisten das nicht.
  • HLC bewahrt die Richtung von bekannter Kausalität zur Uhrordnung. Aus einer kleineren Uhr folgt keine Kausalität; gleichzeitig erzeugte Ereignisse können verschieden sortiert werden, und unabhängige Publisher können dasselbe Paar erzeugen.
  • Eine sortierte Folge ist kein gemeinsamer Datastore-Snapshot. Dafür bleiben Publisher-Epoche, Lücken, Uhrzustand, Gleichstandsregel, Beobachtungsfenster, Schema, Zugriffssicht, Autorisierung, angewandter Zustand und unabhängige Wirkung erforderlich.

Ein lokaler Zähler bleibt lokal

Die laufende Nummer eines Publishers beantwortet eine begrenzte Frage gut. Innerhalb derselben Identität und Prozessepoche kann ein Sprung auf Verlust hinweisen, eine späte kleinere Nummer auf Umordnung und eine Wiederholung auf Duplikat oder Replay. Nummer 900 von Publisher A ist nicht mit Nummer 18 von Publisher B vergleichbar. Beide zählen andere Ereignisgeschichten.

Revision 00 benennt diese Lücke und die ungeklärte Wiederholung nach einem Zählerüberlauf. Sie vergleicht lokale Zähler, Vektoruhren und Hybrid Logical Clocks. HLC kombiniert eine physische Komponente mit einem logischen Zähler, bleibt kompakt und liegt nahe an der physischen Zeit. Der Empfänger soll das Paar lexikographisch vergleichen.

Das ist ein sinnvoller Ordnungsdienst. Es ist kein Zustandsdienst. Reihenfolge beschreibt, wie der Empfänger zwei vorhandene Datensätze anordnet. Sie sagt noch nicht, ob die zugrunde liegenden Beobachtungen denselben Zeitpunkt, dieselbe Transaktion oder überhaupt denselben vollständigen Systemausschnitt betreffen.

Die mathematische Richtung ist absichtlich schmal

Die ursprüngliche HLC-Arbeit formuliert eine Einweg-Eigenschaft. Wenn Ereignis e im verteilten Sinn vor f geschah, dann ist hlc(e) < hlc(f). Happened-before entsteht aus lokaler Programmreihenfolge, Sendung und zugehörigem Empfang sowie deren transitiver Verknüpfung. Ein vorhandener Informationspfad wird nicht umgedreht.

Die Umkehrung gilt nicht. Zwei unabhängige Prozesse können ohne Nachricht oder gemeinsame Operation verschiedene Zustände beobachten. Abweichende physische Uhren geben ihnen unterschiedliche HLC-Werte. Der kleinere Wert darf oben stehen, beweist aber nicht, dass sein Ereignis das andere verursacht hat.

Vektoruhren tragen mehr Information. Komponentenweiser Vergleich kann kausale Vorgängerschaft ausdrücken; Unvergleichbarkeit zeigt Nebenläufigkeit. Der Aufwand wächst mit den Teilnehmern. HLC wählt konstante Größe und physische Nähe. Diese Abwägung darf nicht dadurch rückgängig gemacht werden, dass ein Analyseprodukt jede Ungleichheit als Ursache bezeichnet.

Eine Ordnung erzeugt keinen gemeinsamen Snapshot

Betrachtet Publisher A den Interfacezustand kurz vor einer Umschaltung und Publisher B die Routingtabelle kurz danach, sind beide Meldungen lokal korrekt. Die Kombination „altes Interface, neue Route“ muss dennoch nie gleichzeitig bestanden haben. HLC bringt sie in eine lineare Darstellung, stellt aber keinen gemeinsamen Lesezeitpunkt her.

Dasselbe Problem tritt bei verteilten Datastores, getrennten Daemons, asynchroner Replikation und access-kontrollierten Ansichten auf. Ein Publisher kann eine Änderung früher beobachten, ein anderer später. Ein Kollektor kann einen Datensatz verzögert empfangen. Keine Sortierregel macht aus diesen Grenzen eine atomare Aufnahme.

Wer einen konsistenten Zustand beansprucht, braucht eine gemeinsame Barriere, eine Transaktions- oder Snapshot-Version oder eine offen ausgewiesene Beobachtungszone mit Regeln für Widerspruch. Eventzeit, Beobachtungszeit, Emissionszeit und Empfangszeit sind getrennt zu führen. Das HLC-Paar kann eine davon ergänzen, aber nicht alle ersetzen.

Auch das Paar kann gleich sein

Zwei unabhängige Publisher können dieselbe physische Millisekunde lesen und jeweils den logischen Wert null vergeben. Dann sind beide vorgeschlagenen Felder gleich. Für eine eindeutige Gesamtordnung braucht die Implementierung einen stabilen Publisher, eine Prozessepoche oder eine Ereigniskennung als weitere Vergleichskomponente.

Diese Komponente schafft Determinismus, keine Kausalität. Wenn A nur wegen seiner kleineren Kennung vor B steht, wurde kein Informationspfad entdeckt. Der Gleichstandsentscheid muss als Verwaltungsregel sichtbar bleiben und darf nicht unbemerkt eine Ursache, einen Schuldigen oder eine Rückrollreihenfolge festlegen.

Die Epoche schützt außerdem gegen Neustart und Klon. Ein Hostname kann fortbestehen, obwohl der Prozess und sein Uhrenzustand neu sind. Zwei Instanzen können dieselbe Identität überlappend verwenden. Der Empfänger braucht authentifizierten Principal, Startgeneration, Zustandssicherung und Wiederherstellungsregel, bevor er Serien verbindet.

Epsilon ist ein Verdachtsbereich

Ein Publisher mit weit vorgestellter physischer Uhr kann seine Meldungen ständig nach hinten sortieren. Der Entwurf empfiehlt, Werte als verdächtig zu behandeln, deren physische Komponente um mehr als ein konfiguriertes Epsilon vor der Empfängeruhr liegt. Die Regel begrenzt einen Einfluss, bezeugt aber nicht alle Werte innerhalb der Grenze als richtig.

Auch der Empfänger kann Synchronisation verlieren. Offset, Dispersion, letzte Aktualisierung, Holdover und Korrekturen gehören in einen eigenen Zeitnachweis. RFC 5905 beschreibt NTP; RFC 9581 kann strukturierte Zeitinformation und erklärte Qualität tragen. Beide beweisen weder den beobachteten Sachverhalt noch seine Ursache.

Verwerfen erzeugt eine Lücke. Quarantäne verzögert Entscheidungen. Umschreiben vermischt Publisheraussage und Kollektorentscheidung. Annehmen kann Fenster und Last-Write-Regeln verzerren. Originalwert, Zustand, Grenze, Disposition und spätere Neuberechnung müssen erhalten bleiben.

Vollständigkeit bleibt vor der Sortierung

HLC ordnet nur empfangene Meldungen. Ein ausgefallener Publisher, eine beendete Subscription, ein NACM-Filter, ein Schemafehler, Transportverlust, Zusammenfassung oder Kollektorstau können Informationen entfernen, während alle verbleibenden Serien lückenlos wirken. Stille ist kein negativer Befund, solange die erwartete Quelle nicht nachweislich aktiv und sichtbar war.

Der belastbare Datensatz nennt erwartete und aktive Publisher, Subscription und Zugriffssicht, Schema und Inhaltsidentität, Publisher und Epoche, lokale Sequenz, HLC und Uhrzustand, Lücken und Transformationen. Eine Kausalbehauptung ergänzt Nachricht, Transaktion oder Domänenabhängigkeit. Eine Aktion ergänzt verantwortlichen Principal, Mandat, Ziel, Parameter, lokale Validierung, Ausführung, Zustandslesung und unabhängige Verkehrs- oder Servicebeobachtung.

Der Status begrenzt jede Aussage

Revision 00 ist ein individueller Internet-Draft vom 30. August 2026, als Informational vorgesehen und bis 1. März 2027 gültig. Laut Datatracker ist er nicht vom IETF gebilligt und besitzt keinen formalen Stand im IETF-Standardisierungsprozess. Er ist kein NETCONF-WG-Dokument, RFC, Implementierungs- oder Einsatznachweis.

Die Fragestellung ist dennoch wertvoll. Verteilte Telemetrie braucht eine erklärte Vergleichsregel. HLC kann bekannte kausale Ordnung respektieren und ein kompaktes Sortiermittel liefern. Es kann nicht aus jeder Ungleichheit eine Ursache, aus jeder sortierten Liste einen gemeinsamen Zustand oder aus einer Meldungsfolge Autorität und Ergebnis machen.

Quellen