Schweizer Innovation
08.12.2019, 14: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 Suchergebnisse 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 Applikationen 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 abgesucht 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 Administratoren 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) entwickelt: Data Store for Memcache.