EMZETT.
Login

Vektoruhren und logische Zeit

Kurz: In verteilten Systemen gehen Uhren unterschiedlich. Logische Uhren (Lamport) und Vektoruhren ordnen Ereignisse nach Ursache und Wirkung statt nach der Uhrzeit.

Genauer: Eine Lamport-Uhr ist ein Zähler, der bei jedem Ereignis und bei jeder empfangenen Nachricht erhöht wird. Sie garantiert: Wenn A vor B kam, ist Zeit(A) < Zeit(B). Umgekehrt gilt das nicht. Vektoruhren speichern pro Knoten einen Zähler und erkennen echte Gleichzeitigkeit.

Im Detail

  • Happened-before (→): Teilordnung: gleicher Prozess, oder Senden → Empfangen.
  • Lamport: Beim Empfang t = max(lokal, empfangen) + 1.
  • Vektoruhr: Vergleich zweier Vektoren zeigt „vor“, „nach“ oder „gleichzeitig (Konflikt)“.
  • Wanduhr-Probleme: Uhrabweichung, NTP-Sprünge, Schaltsekunden.
  • Hybrid Logical Clocks: Mischen physische und logische Zeit (z. B. CockroachDB).
  • Einsatz: Konflikterkennung bei Replikation, Versionierung.

Siehe auch: CRDTs: konfliktfrei replizierte Datentypen, Replikation: Leader und Follower