Memcached 1.5.18 überlebt Neustart

Im Wesentlichen bringt Memcached 1.5.18 ein großes Feature mit: Der Cache-Server kann seinen Cache auch über Reboots hinweg retten. Dabei hilft auch ein Kernel-Feature namens DAX (Direct Access).

Spätestens seit Kernel 4.0 spielt DAX im Kernel ein Rolle. Es sorgt beim Einsatz von persistentem Speicher dafür, Daten direkt auszulesen und nicht über den Page Cache zu schicken. Nun kommt DAX bei Memcached zum Einsatz, damit der Cache auch Neustarts des Systems überlebt. Das geschieht nicht automatisch, vielmehr muss der Admin dafür manuell vorarbeiten. Zu den Startoptionen gehört laut Release Notes die Zeile “-e /tmpfs_mount/memory_file”. Bei “tmpfs_mount” muss es sich um eine Ramdisk handeln, die größer sein sollte als das über den Parameter “-m” gesetzte Speicherlimit für Memcached.

Memcached verschiebt nur “item”-Daten in das externe “mmap”-File, Hashtabellen, Verbindungsdaten bleiben im Arbeitsspeicher. Nach dem Neustart liest der Daemon das File ein, stellt interne Pointer wieder her und regeneriert die Hashtabellen. Das dauert, je nach Größe des Cache, ein paar Sekunden bis zu ein paar Minuten.

Fehlstart möglich

Um den Cache-Server neu zu starten, sendet der Admin ein “SIGUSR1” an den Daemon, woraufhin Memcached eine Datei namens “/tmpfs_mount/memory_file.meta” anlegt. Nach dem Neustart liest Memcached diese Datei wieder ein und fährt mit seiner Arbeit fort. Ist die erzeugte Datei nicht kompatibel oder korrupt, schlägt der Prozess allerdings fehl und Memcached startet mit einem leeren Cache.

Das Feature sei einerseits noch experimentell, schreiben die Entwickler und hoffen auf Feedback von Nutzern. Andererseits gibt es ein paar Voraussetzungen zu beachten. Die Systemuhr muss richtig eingestellt sein und darf nicht springen, während Memcached heruntergefahren ist. Bestimmte Kommandos sind beim Neustart nicht verfügbar. Und das Ganze funktioniert erst ab Version 1.5.18.

E-Mail Benachrichtigung
Benachrichtige mich zu:
0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben