Schweizer Innovation 06.12.2019, 10:07 Uhr

Web-Turbolader aus Rüschlikon

Die Memcached-Technologie kommt bei populären Schweizer Websites zum Einsatz. Eine Neuentwicklung von IBM Research Zurich steigert die Performance und senkt die Kosten.
Für schnellere Such­ergebnisse auf populären Webseiten wird Memcached genutzt
(Quelle: Shutterstock / ra2studio )
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. War ein 16-Gigabyte- Modul im Herbst 2016 noch für gut 75 Franken zu haben, kostete es im vergangenen Jahr zwischenzeitlich mehr als das Doppelte (180 Franken). Dies war der grösste 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 grosse 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 grosser Datenmengen, wie sie beispielsweise bei populären Schweizer Seiten wie Bluewin, Blick oder SBB anfallen. 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.

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 tieferen 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.
“Die Apps müssen nicht neu programmiert werden„
Nikolas Ioannou, IBM Research Zurich
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össte jemals registrierte Attacke auf populäre Webseiten lanciert 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 Autorisierungsmassnahmen in die Lösung implementiert. Auch wird der Datentransfer standardmässig 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 Jahr 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ässig verschlüsselt.
“Der beste Teil der Forschung ist, die Arbeit in die freie Wildbahn zu bringen„
Kornilios Kourtis, IBM Research Zurich
«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. Anschliessend soll der Service zu einer kommerziellen Lösung weiterentwickelt werden.


Das könnte Sie auch interessieren