Verteilte Systeme mit Kubernetes entwerfen by Brendan Burns

Verteilte Systeme mit Kubernetes entwerfen by Brendan Burns

Autor:Brendan Burns
Die sprache: deu
Format: epub
Herausgeber: dpunkt
veröffentlicht: 2018-03-15T00:00:00+00:00


Konsistente Hashing-Funktionen

Das Einrichten des initialen Shards für einen neuen Service ist recht einfach: Sie setzen die entsprechenden Shards und die Roots für das Durchführen des Shardings auf und schon kann es losgehen. Aber was passiert, wenn Sie die Anzahl der Shards ändern müssen? Solch ein 'Re-Sharding' ist oft ein komplizierter Prozess.

Um das zu verstehen, denken Sie an den vorher beschriebenen Sharded Cache. Mit einem Container-Orchestrierer ist es sicherlich kein Problem, den Cache von 10 auf 11 Replicas zu erweitern, aber was bewirkt das Ändern der Sharding-Funktion von Hash(Req) % 10 auf Hash(Req) % 11? Deployen Sie diese neue Sharding-Funktion, werden viele Requests auf einen anderen Shard geleitet werden als zuvor. Bei einem Sharded Cache wird das Ihre Miss Rate drastisch erhöhen, bis der Cache durch die Responses wieder neu aufgefüllt wurde. Im schlimmsten Fall entspricht ein Ausrollen einer neuen Sharding-Funktion einem Komplett-Ausfall des Cache.

Um solche Probleme zu beheben, nutzen viele Sharding-Funktionen konsistente Hashing-Funktionen. Dabei handelt es sich um spezielle Hash-Funktionen, die garantiert nur AnzahlSchlüssel / AnzahlShards neu abbilden, wenn die Größe auf AnzahlShards geändert wird. Nutzen wir zum Beispiel eine konsistente Hashing-Funktion für unseren Sharded Cache, führt ein Wechsel von 10 auf 11 Shards nur zu einem Neuabbilden von weniger als 10% ( AnzahlSchlüssel / 11 ) der Schlüssel. Das ist deutlich besser, als den gesamten Sharded Service zu verlieren.



Download



Haftungsausschluss:
Diese Site speichert keine Dateien auf ihrem Server. Wir indizieren und verlinken nur                                                  Inhalte von anderen Websites zur Verfügung gestellt. Wenden Sie sich an die Inhaltsanbieter, um etwaige urheberrechtlich geschützte Inhalte zu entfernen, und senden Sie uns eine E-Mail. Wir werden die entsprechenden Links oder Inhalte umgehend entfernen.