Verwendet Memcached konsistentes Hashing?
Verwendet Memcached konsistentes Hashing?

Video: Verwendet Memcached konsistentes Hashing?

Video: Verwendet Memcached konsistentes Hashing?
Video: System Design Interview - Distributed Cache 2024, Kann
Anonim

Konsistentes Hashing mit Memcached oder Redis und ein Patch für libketama. Dies ist eine Anleitung für konsistentes Hashing von Schlüsseln in Schlüsselwertspeichern, mit Schwerpunkt auf Cache-Servern. Der Code ist Cache-Server-Agnostik: da ist nichts spezifisches zu Memcached oder Redis darin, und es könnte mit anderen Servern verwendet werden.

Wenn man dies berücksichtigt, wo wird konsistentes Hashing verwendet?

In einem verteilten System, konsistentes Hashing hilft bei der Lösung der folgenden Szenarien: Um elastische Skalierung bereitzustellen (ein Begriff Gebraucht dynamisches Hinzufügen/Entfernen von Servern basierend auf der Auslastung zu beschreiben) für Cache-Server. Skalieren Sie eine Reihe von Speicherknoten wie NoSQL-Datenbanken hoch.

verwendet Redis konsistentes Hashing? Die hash Slots ähneln virtuellen Knoten in konsistentes Hashing . Cassandras Datenverteilung ist fast das gleiche wie redis Cluster, und dieser Artikel sagte, es ist konsistentes Hashing . Aber die redis Cluster Turorial sagte redis Cluster tut nicht Verwenden Sie konsistenten Hash.

Verwendet Cassandra folglich konsistentes Hashing?

2 Antworten. Cassandra tut nicht Verwenden Sie konsistentes Hashing so wie du es beschrieben hast. Jede Tabelle hat einen Partitionsschlüssel (Sie können ihn als Primärschlüssel oder den ersten Teil davon in der RDBMS-Terminologie betrachten), dieser Schlüssel ist gehasht mit murmur3-Algorithmus. Das Ganze hash Raum bildet einen durchgehenden Ring vom niedrigsten möglichen hash zum Höchsten

Warum brauchen wir konsistentes Hashing?

Veränderungen und jedes Objekt ist gehasht an einen neuen Standort. Dies kann katastrophal sein, da die ursprünglichen Inhaltsserver sind mit Anfragen von den Cache-Maschinen überflutet. Somit konsistentes Hashing ist erforderlich um eine Überlastung der Server zu vermeiden. Konsistentes Hashing ordnet Objekte so weit wie möglich derselben Cache-Maschine zu.

Empfohlen: