Zum Hauptinhalt springen

Überblick über die Kernkonzepte

Clustron Zaris ist ein verteilter Key/Value-Store mit integrierten Koordinationsprimitiven. Dieser Abschnitt vermittelt Ihnen die mentalen Modelle, die Sie zum Entwerfen von Anwendungen darauf benötigen: was ein Store ist, wie sich Keys und Values verhalten, wie Daten ablaufen, was das System bei Nebenläufigkeit garantiert und wie Leases und Koordination funktionieren.

Was Clustron Zaris Ihnen bietet​

Clustron Zaris vereint drei Dinge, die üblicherweise getrennte Systeme sind:

  • Einen verteilten Key/Value-Store, in dem Sie Values per Key lesen und schreiben.
  • Koordinationsprimitive — Locks, Zähler und Watch — mit denen unabhängige Anwendungsinstanzen sicher zusammenarbeiten können.
  • Lebenszyklusverwaltung, bei der Keys von selbst ablaufen und die Ownership einer Ressource an die Zeit gebunden ist.

Der Gewinn: Sie denken über geteilten Zustand, Koordination und Bereinigung über eine einzige API nach, statt einen Cache, einen Lock-Dienst und einen Message-Bus zusammenzufügen.

tipp

Behalten Sie dieses Modell beim Lesen des restlichen Abschnitts im Kopf: Clustron Zaris ist geteilter Zustand plus Koordination plus Lebenszyklus. Die Daten sind der geteilte Zustand, Leases und Locks sind die Koordination, und TTL und Ablauf sind der Lebenszyklus.

Der Store ist die Einheit, gegen die Sie arbeiten​

Jede Operation in Clustron Zaris läuft gegen einen Store. Ein Store ist ein logischer Cluster, der Ihre Daten und Ihre Koordinationsprimitive enthält und die Grenze definiert, innerhalb derer sie konsistent sind. Sie sprechen nie direkt mit einzelnen Nodes — Sie sprechen mit einem Store, und der Store präsentiert sich als eine einzige logische Einheit, unabhängig davon, wie viele Nodes ihn tragen.

Ein Store kann ohne Änderung an Ihrem Code auf zwei Arten laufen:

  • In-Process, innerhalb einer einzelnen Anwendung, ohne separate Infrastruktur.
  • Verteilt, über mehrere Nodes auf mehreren Maschinen, sodass Instanzen sich koordinieren können.

Da die API in beiden Fällen identisch ist, können Sie gegen einen In-Process-Store entwickeln und gegen einen verteilten bereitstellen.

Daten und Koordination an einem Ort​

Die Datenseite eines Stores ist der Key/Value-Store: Sie schreiben und lesen Values per Key, hängen eine Time-to-Live an, damit Einträge sich selbst bereinigen, und fassen mehrere Operationen in einer Transaktion zusammen, wenn sie gemeinsam angewendet werden müssen.

Die Koordinationsseite lässt mehrere Instanzen als ein System agieren. Locks bieten gegenseitigen Ausschluss, sodass nur eine Instanz einen kritischen Abschnitt ausführt. Zähler verfolgen geteilten numerischen Zustand mit atomaren Updates. Watch liefert Änderungen, sobald sie eintreten, sodass Sie reagieren, statt zu pollen.

Diese sind nicht neben den Daten angeflanscht — sie bauen auf denselben Keys, derselben TTL und derselben Lease-Mechanik auf, weshalb sie sich zusammen vorhersagbar verhalten.

Lebenszyklus-Bewusstsein​

Ein einfacher Cache speichert Values und vergisst sie. Clustron Zaris verfolgt den Lebenszyklus: Keys können automatisch per TTL ablaufen, Ressourcen können an eine Lease gebunden werden, sodass sie nur existieren, solange ein Owner sie am Leben hält, und Fehler werden behandelt, indem der Ablauf die Ownership freigibt, statt sie festhängen zu lassen. So bauen Sie Systeme, die sich von selbst erholen, wenn ein Prozess abstürzt oder eine Netzwerkverbindung abreißt.

Wie die Teile zusammenpassen​

Die folgende Übersicht zeigt, wie die Konzepte innerhalb eines Stores aufeinander aufbauen, von den Rohdaten oben bis zur Koordination unten:

Store
├── Keys & Values
├── TTL & Expiration
├── Leases (lifecycle control)
└── Coordination (locks, counters, watch)

Jede Schicht baut auf der darüberliegenden auf: Koordinationsprimitive stützen sich auf Leases, Leases stützen sich auf denselben Ablaufmechanismus wie TTL, und alles lebt innerhalb eines einzigen Stores.

Nächste Schritte​