Zurück zur Übersicht

Begriff

Vector Clock

Distributed Systems Computer Science S3
2 Quellen 0 Lernpfade 1 Backlink enriched

Warum wichtig?

Dieser Begriff ist ein Knoten im SengakujiWorks-Wissensnetz. Nutze Level 0 für die erste Einordnung, Level 1 für Praxis, Level 2 für technische Struktur und Level 3 für Grenzen, Fallstricke und Expertenkontext.

In einem verteilten System (z. B. Chat-App auf 3 Handys) gibt es keine "globale Zeit". Jedes Handy hat seine eigene Uhr, und die gehen falsch. Wenn Alice und Bob gleichzeitig schreiben – wer war zuerst? Eine Vector Clock ist eine schlaue Uhr, die nicht nur eine Zahl speichert, sondern eine Liste von Zahlen (einen Vektor). [A:1, B:2, C:5]. Damit kann man exakt sagen:

  • Hat A vor B etwas getan? (Causality).
  • Oder haben sie es gleichzeitig (unabhängig) getan? (Concurrency). Das ist essenziell, um Datenbank-Konflikte zu erkennen ("Merge Conflict").

Merksatz: Ein Algorithmus zur Erzeugung einer partiellen Ordnung von Ereignissen in einem verteilten System und zur Erkennung von Kausalitätsverletzungen (Kausalität vs. Nebenläufigkeit).


Quick-Check

  1. Warum reichen Unix-Timestamps nicht?
    Uhren driften (NTP ist nicht genau genug für Millisekunden-Logik). Und "Zeitgleichheit" existiert physikalisch (Relativitätstheorie) in verteilten Systemen nicht.
  2. Größe?
    Das Problem: Der Vektor wächst mit der Anzahl der Clients (Prozesse). Bei 1 Million Clients wird der Vektor riesig. Man braucht "Pruning" (alte Einträge löschen).
  3. Konflikt?
    Vektor A: [1, 0]. Vektor B: [0, 1]. Keiner ist größer. -> Konflikt (Concurrent).