Forschung
06.12.2019
Data Store for Memcache
1. Teil: „Web-Turbolader aus der Schweiz“

Web-Turbolader aus der Schweiz

Schnelle Seiten auf dem HandySchnelle Seiten auf dem HandySchnelle Seiten auf dem Handy
Shutterstock / ra2studio
Die Memcached-Technologie kommt bei populären Schweizer Websites zum Einsatz. Eine Neuentwicklung von IBM Research Zurich steigert die Performance und senkt die Kosten.
Wer bei LinkedIn nach dem Namen eines Geschäftskontakts sucht, eine Unterkunft über Airbnb bucht oder auf Twitter einem Hashtag folgt, hat allenfalls schon einmal registriert, dass die Websites schon während des Tippens mögliche Antworten vorschlagen. Dies ist möglich, weil die Webseiten-Betreiber die Memcached-Technologie verwenden.
Die Webapplikationen LinkedIn, Airbnb oder Twitter verwenden in der Regel Datenbanken wie MySQL. Mit den Daten, die sie aus SQL-Abfragen erhalten, erzeugen die Appli­kationen dynamische Webseiten. Für die Performance der Applikationen ist es wichtig, dass diese Seiten möglichst schnell geladen werden, vor allem wenn es um E-Commerce geht. Denn beim Online-Shopping wartet niemand gerne auf sein Wunschprodukt. Jedoch können gewisse SQL-Abfragen, vor allem jene mit komplexen Prädikaten, sehr lange brauchen, bis die Ergebnisse geliefert werden.

Instagram und Wikipedia

Hier beschleunigt die Memcached-Technologie die dynamischen Datenbanken von Seiten wie beispielsweise Facebook, Instagram, Reddit und Wikipedia, indem Daten im Arbeitsspeicher der Webserver zwischengespeichert werden. Damit entfällt die Notwendigkeit, bei jeder einzelnen Abfrage wieder direkt auf die Datenbank zugreifen zu müssen. Stattdessen kann zuerst der Memcached-Server ab­gesucht werden. Nur wenn das Ergebnis dort nicht gefunden wird, geht die Abfrage weiter an den Webserver. Somit liefert eine Suche wesentlich schneller Ergebnisse.
Heute setzen mehr als 700 Anwendungen auf die Memcached-Technologie. Auch bieten die meisten Cloud- Anbieter verwaltete Memcached-Dienste an. Unter anderem Amazon. Dort wird die Open-Source-Lösung unter dem Produktnamen ElastiCache vermarket. Mit den Managementwerkzeugen der Amazon-Cloud können Admini­stratoren ein verteiltes Memcached-System anlegen, das selbstständig ausgefallene Knoten ersetzt. Ebenso kann der Administrator durch das Hinzufügen oder Entfernen von Knoten die Menge des Cache-Speichers regulieren. Durch die Integration in den Monitoring-Dienst CloudWatch lässt sich die Auslastung des Cache auch visuell prüfen.

Flaschenhals Arbeitsspeicher

Seit der Einführung von Memcached im Jahr 2003 setzen die Entwickler rund um Brad Fitzpatrick beim Zwischenspeichern ihrer Daten auf DRAM. Diese Wahl erweist sich als Flaschenhals, denn DRAM ist nicht die beste Lösung für das Memcaching. Erstens ist der Speicher flüchtig – bei einem Stromausfall gehen die Daten verloren. Zweitens ist DRAM teuer. Im Verlauf des Jahres 2017 stieg der Preis pro Gigabyte um über 100 Prozent. Dies war der größte Anstieg seit 1988. Mittlerweile hat sich der Markt etwas erholt, von einem Preisverfall wie bei anderen Hardware-Komponenten kann aber immer noch nicht die Rede sein. Ein Hauptgrund für die Entwicklung dürfte die große Nachfrage seitens der Cloud-Betreiber sein. Sie können allerdings drittens auch nur vergleichsweise wenige DRAM-Module pro Server installieren. Irgendwann sind die Steckplätze alle belegt.
DRAM ist damit nicht die optimale Lösung für das Zwischenspeichern großer Datenmengen. Um das Memcaching zu modernisieren, hat ein Team rund um die Wissenschaftler Nikolas Ioannou und Kornilios Kourtis von IBM Research Zurich im vergangenen Jahr einen verwalteten Memcache-Service mit nichtflüchtigem Speicher (Non-Volatile Memory, NVM) ent­wickelt: Data Store for Memcache.
2. Teil: „Günstiges Flash statt teures DRAM “

Günstiges Flash statt teures DRAM

Data Store for Memcache ersetzt das unbefriedigende DRAM durch Flash-Speicher. Dabei kann dieselbe Mem­cached-API verwendet werden. "Der Quellcode der Anwendungen muss nicht verändert werden", sagt Ioannou. Das Ergebnis ist eine um ein Vielfaches höhere Speicherkapazität bei viel niedrigeren Kosten – und gleicher Leistung.
Bei Verwendung von Flash-Speicher wären etwa 20-fach niedrigere Kosten realisierbar, sagt Ioannou. Mit Intels Optane-Technologie sind noch 5-mal tiefere Hardware-Kosten möglich. Die in Rüschlikon entwickelte Software-Bibliothek uDepot kann mit beliebigen Speicherarten verwendet werden, also SSD, SATA und SAS. Die beste Performance sei aber mit NVM (wie Optane) erreichbar, sagt Ioannou.
Um die Leistungsfähigkeit zu prüfen, haben die IBM-Entwickler den Data Store for Memcache mit der DRAM- Lösung Amazon ElastiCache verglichen. Um die Vergleichbarkeit sicherzustellen, wurden jeweils die kostenlosen Ver­sionen der beiden Lösungen verwendet und ein Client in derselben Verfügbarkeitsregion ausgeführt (us-east2 für ElastiCache und dal10 für Data Store for Memcache). Zum Einsatz kam der memaslap-Benchmark, ein Standard für die Messung der Memcached-Performance. Data Store for Memcache erwies sich im Durchschnitt um 33 Prozent schneller. Wie die IBM-Forscher eingestehen, würde die spezifische Leistungsverbesserung allerdings von diversen Faktoren abhängen, wie beispielsweise der Last auf den Servern und Clients. Weiter spiegle das Ergebnis nur die Leistung der kostenlosen Version von ElastiCache wider.

Eingebauter DDoS-Schutz

Anfang des vergangenen Jahres machte das Memcaching negative Schlagzeilen, nachdem Hacker die Technologie via UDP-Port 11211 missbraucht hatten, um einen Distributed-Denial-of-Service-Angriff (DDoS) zu verstärken. So konnte damals die größte jemals registrierte Attacke auf populäre Webseiten gestartet werden. Eine der vom Angriff betroffenen Seiten war die Entwicklerplattform GitHub.
Um das Risiko eines Angriffs im Data Store for Mem­cache zu eliminieren, haben die IBM-Programmierer mehrere Authentifizierungs- und Qualifizierungsmaßnahmen in die Lösung implementiert. Auch wird der Datentransfer standardmäßig verschlüsselt und der UDP-Port ist de­ak­tiviert. Wie IBM-Wissenschaftler Kourtis sagt, war es er­forderlich, die zusätzlichen Sicherheitsmechanismen zu implementieren, da das Standardprotokoll Memcached in einem vertrauenswürdigen Netzwerk normalerweise ohne zusätzliche Authentifizierung ausgeführt wird.

Bester Teil der Forschung

Seit Mitte des Jahres kann Data Store for Memcache auf der Cloud-Plattform von IBM öffentlich getestet werden. Die Forscher haben die Lösung mit einem kostenlosen Preisplan für 30 Tage freigeschaltet. Im Service enthalten sind eine IAM-Authentifizierung und -Autorisierung. Daneben werden alle Daten standardmäßig verschlüsselt.
"Dies ist der beste Teil der Forschung – die Arbeit in die freie Wildbahn zu bringen", sagt Kourtis. Die IBM-Forscher wollen jetzt protokollieren, wie die Kunden die Technologie nutzen werden, und basierend auf dem Feedback noch Verbesserungen vornehmen. Anschließend soll der Service zu einer kommerziellen Lösung weiterentwickelt werden.

mehr zum Thema