Die Speicherung und schnelle Verarbeitung von Daten sind essentielle Herausforderungen moderner IT-Infrastrukturen, insbesondere bei der Verwaltung großer Mengen kleiner Datenobjekte. Insbesondere soziale Medienplattformen und das Internet der Dinge (IoT) erzeugen Milliarden winziger Datenstücke, beispielsweise Verbindungen in sozialen Graphen, die durchschnittlich weniger als 100 Bytes groß sind. Traditionelle Caching-Lösungen stoßen hier schnell an Grenzen, da sie entweder zu viel teuren DRAM-Bereich beanspruchen oder durch intensive Schreibvorgänge Flash-Speicher zu schnell abnutzen. Die Entwicklung von Kangaroo bringt hier eine innovative Lösung, die speziell auf diese Anforderungen zugeschnitten ist.Kangaroo ist ein flashbasierter Cache, der durch seine hybride Architektur die Vorteile zweier bestehender Cache-Typen kombiniert und ihre jeweiligen Schwächen überwindet.
Erfunden im Rahmen einer Zusammenarbeit zwischen Meta (ehemals Facebook) und der Carnegie Mellon University, wurde Kangaroo mit dem Best Paper Award auf der renommierten SOSP-Konferenz 2021 ausgezeichnet. Die Technologie ist in Facebooks Open-Source-Caching-Engine CacheLib integriert, wodurch Entwickler über eine flexible API eigenen Cacheservices aufbauen können, die optimal auf winzige Objekte angepasst sind.Das Hauptproblem bisheriger Flash-Caches besteht in der ineffizienten Handhabung kleiner Objekte. Herkömmliche set-associative Caches schreiben auf Flash immer in Einheiten von 4 Kilobyte, obwohl die gespeicherten Daten oft nur wenige Bytes umfassen. Dies führt zu massivem sogenannten Schreibaufwand, der die Lebensdauer von Flash-Speichergeräten erheblich reduziert.
Im Gegensatz dazu erzeugen log-strukturierte Caches einen hohen DRAM-Verbrauch, da sie für jeden auf Flash gespeicherten Objekteintrag eine Indexstruktur im DRAM vorhalten müssen. Für Umgebungen mit Millionen bis Milliarden winziger Objekte sind beide Ansätze deshalb ineffizient.Kangaroo löst diese Problemstellung durch eine Kombination aus einem kleinen log-strukturierten Flash-Cache namens KLog und einem größeren set-associativen Flash-Cache namens KSet. Das Design setzt auf eine hierarchische Speicherorganisation. Zu Beginn erfolgt die Datenabfrage direkt im DRAM-Cache, um optimale Zugriffszeiten zu gewährleisten.
Bleibt der Suchvorgang dort erfolglos, wird zunächst KLog geprüft, dessen Index effizient über den DRAM verwaltet wird, gefolgt von der Abfrage in KSet, das durch Bloom-Filter unterstützt wird, um teure Flash-Zugriffe zu minimieren.Dieser mehrstufige Ansatz hat wesentliche Vorteile für die Speicher- und Schreibeffizienz. Neue Objekte landen zuerst im DRAM-Cache. Werden sie hier aus dem Cache geworfen, entscheidet eine intelligente Vorabzulassungspolitik, ob sie direkt verworfen oder in KLog aufgenommen werden. Wenn sie KLog erreicht, sorgt eine weitere Zulassungspolitik dafür, dass nur dann Objekte in KSet verschoben werden, wenn sich eine ausreichende Anzahl von Objekten zum gemeinsamen Schreiben angesammelt hat.
Die gemeinsame Speicherung mehrerer Objekte in einem 4-Kilobyte-Flash-Set reduziert die pro Objekt anfallenden Schreibkosten signifikant.Die Innovation von Kangaroo liegt insbesondere darin, diese Schreibvorgänge über KLog zu aggregieren und effizient auf KSet zu übertragen. Statt Objekte einzeln in die set-associative Struktur zu schreiben, sammelt KLog mehrere zusammengehörige Objekte und vermindert somit den Schreibaufwand auf Flash. Dadurch sinkt die sogenannte Schreibamplifikation drastisch, was nicht nur die Performance verbessert, sondern auch die Haltbarkeit der Flash-Speicher verlängert.Zusätzlich beinhaltet Kangaroo spezielle Cache-Eviktionsrichtlinien, die perfekt auf die Eigenheiten von Flash und den Bedarf an schnellem Speicherzugriff abgestimmt sind.
So kann beispielsweise eine Schwellenwert-basierte Zulassungspolitik verhindern, dass bei unzureichender Menge an Objekten Designeffizienz verloren geht. Diese Feinabstimmungen resultieren in einer robusten und strapazierfähigen Cache-Lösung, die unter realen Produktionsbedingungen eine deutlich niedrigere Fehlerrate aufweist als herkömmliche Systeme.Die Wirksamkeit von Kangaroo wurde anhand von Social-Graph-Caching-Daten aus Produktionseinsätzen bei Facebook und Twitter geprüft. Die Tests zeigen beeindruckende Ergebnisse: Kangaroo reduzierte die Cache-Verfehlungsrate bei begrenztem DRAM- und Schreibbudget um 29 Prozent gegenüber einem traditionellen set-associative Cache und sogar um 56 Prozent gegenüber log-strukturierten Caches. Zudem bestand das System den Praxistest einer parallelen Produktionsevaluierung als Shadow Deployment mit überzeugender Stabilität.
Die Bedeutung von Kangaroo geht weit über einzelne Anwendungen hinaus. Die steigende Verbreitung von IoT-Geräten, die kontinuierlich kleine Datenmengen generieren, sowie die vielfach exponentiell wachsenden sozialen Netzwerke erfordern eine moderne, kosteneffiziente Speicherstrategie. Flash-Speicher bietet enorme Kapazitäten zu moderaten Kosten, doch dessen volatiler Charakter und begrenzte Schreibzyklen machten den Einsatz für kleine Objekte bisher problematisch. Kangaroo schafft hier Abhilfe, indem es den Flash-Einsatz mit minimalem DRAM-Touchpunkt und geringer Schreibüberlast anwendbar macht.Des Weiteren ist die Integration von Kangaroo in CacheLib bedeutsam, da diese offene Plattform Entwicklern eine einfache Schnittstelle zur Implementierung eigener Caching-Dienste bietet, die an spezifische Anforderungen anpassbar sind.
Die Offenheit dieser Plattform fördert eine breite Anwendung und Weiterentwicklung der Technologie über Meta hinaus, was für die gesamte Branche ein großer Gewinn ist.Kangaroo zeigt eindrucksvoll, dass durch die Kombination altbekannter Architekturprinzipien mit innovativen Ansätzen maßgeschneiderte Lösungen für komplexe technische Probleme entstehen können. Die kosten- und performanceseitigen Vorteile bei der Behandlung winziger Objekte im Flash-Cache verschaffen Unternehmen und Plattformen eine neue Grundlage für skalierbare, schnelle und langlebige Speicherarchitekturen.Zukünftig könnten Entwicklungen wie eine Erweiterung von Kangaroo für noch heterogenere Speichermedien, direkte Integration ins Betriebssystem oder KI-gestützte adaptive Cache-Regeln folgen. Auch andere Branchen, etwa die Finanzwelt oder Online-Gaming, könnten von diesen Fortschritten profitieren, indem Echtzeitdaten effizienter verwaltet werden.
Kangaroo symbolisiert somit nicht nur technischen Fortschritt, sondern bringt auch substanzielle praktische Verbesserungen für datenintensive Anwendungen.Insgesamt markiert Kangaroo einen bedeutenden Schritt in der Evolution von Flash-Caching-Technologien. Seine Fähigkeit, enorme Mengen winziger Objekte mit geringer Latenz und minimalem Speicherbedarf zu verarbeiten, setzt neue Maßstäbe für Dateninfrastruktur und Speicheroptimierung in der Ära Big Data und IoT. Die damit einhergehende Senkung des Backend-Datenbank- und Speicherloads wirkt sich zudem positiv auf die Betriebskosten und Skalierbarkeit großer Plattformen aus.Kangaroo steht exemplarisch für den Mehrwert gemeinschaftlicher Forschung zwischen Industrie und Wissenschaft.
Die Kooperation zwischen Meta und der Carnegie Mellon University hat eine innovative Lösung hervorgebracht, die anhand konkreter Produktionserfahrungen validiert wurde und somit echte Mehrwerte in der Praxis liefert. Die Verfügbarkeit als Open-Source-Komponente verspricht eine breite Nutzung und kontinuierliche Innovation im Bereich moderner Cache-Systeme.Zusammengefasst vereint Kangaroo effiziente Speicherung, hohe Geschwindigkeit und Langlebigkeit in einem Cachesystem, das speziell für die Herausforderungen von winzigen Datenobjekten auf Flash-Basis konzipiert wurde. Seine Architektur bietet eine zukunftssichere Basis, die den zunehmenden Anforderungen datenintensiver Dienste und digitaler Plattformen gerecht wird und trägt somit entscheidend zur Verbesserung der Leistungsfähigkeit moderner Infrastruktur bei.