MemCache bietet kein eingebautes Failover oder Redundanz

Siehe MemCache FAQ

1. Keine Redundanz: Jedes Element wird genau einem Knoten zugeordnet. Der Client bestimmt anhand eines clientseitigem Hash-Algorithmus, welchen Knoten er anfragen muß.

2. Kein Failover: Da der clientseitige Hash-Algorithmus die Anzahl an Knoten in seine Berechnung einbezieht, entstehen durch Weg- oder Hinzunehmen von Knoten komplett neue Zuordnungen/Schlüssel und die alten sind nicht mehr gültig. Ein Weg- oder Hinzunehmen ist somit gleichbedeutend mit einem Leeren des kompletten Caches, da alle Schlüssel ungültig werden.

3. Eine schicke Lösung Gruppen / Ordner von Elementen zu invalidieren ist: Im Cache wird eine Art Versionsnummer gespeichert, welche in den Cacheschlüssel eingebaut wird. Wird diese eine Nummer geändert / erhöht, ändern sich automatisch die Schlüssel und die alten werden ungültig / nicht mehr benutzt.

4. Aufwärmen des Caches: „nur“ die Variante mit Skript/Bot Anfragen zu generieren. Ein Vorladen von „gedumpten“ Daten wird ausdrücklich nicht empfohlen.

5. Problem des „Ausfalls“ in der Zeit zwischen austimen und erneutem reinlegen – Lösungsvorschlag: Das Timeout auf den Elementen sehr hoch setzen und im Element ein „eingebettetes“ Timeout ablegen. Der Client kann dann bei jedem Auslesen entscheiden, ob er am Ende der Anfrage das Element neu aus der DB lädt und im Cache aktualisiert.

6. Die Reihenfolge der Server in der Konfiguration ist nicht egal. Unterschiedliche Reihenfolge -> unterschiedliche Verteilung. (Z.B. falls es unklare „Cache Misses“ gibt. Client A berechnet Server 2 als Ziel und Client B jedoch Server 1).

MemcacheBinaryProtocol , libketama

Advertisements
Dieser Beitrag wurde unter Uncategorized veröffentlicht. Setze ein Lesezeichen auf den Permalink.

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s