Alles cachen

Netflix OOS: Hollow macht in-memory Datensets effizienter

Gabriela Motroc

© Shutterstock / Yiorgos GR

Netflix Hollow ist eine Java-Bibliothek samt umfassenden Toolset, um kleine bis mittelgroße in-memory Datensets eines einzelnen Produzenten, die an viele Konsumenten mit read-only Zugriff verbreitet werden, besser zu nutzen. Die Entwickler hatten dabei stets vielbeschäftigte Server im Hinterkopf, die Requests nah am Kapazitätsmaximum abarbeiten. Das Ziel von Hollow ist es, in-memory Datensets skalierbar zu nutzen.

Softwareentwickler begegnen oft dem Problem, dass sie Daten verteilen müssen, die nicht unter das Label Big Data fallen, erklärt Drew Koszewnik, Softwareentwickler bei Netflix, in dem Blogpost, der Hollow ankündigt. Einer der gebräuchlichsten Wege mit diesem Problem umzugehen ist, die Daten an einem zentralen Ort zu speichern oder zu serialisieren. Und dann an die Konsumenten zu verteilen, die eine lokale Kopie behalten.

Beide Methoden haben ihre Probleme. Deshalb nutzen Entwickler oft eine Kombination – Daten lokal zu chachen, auf die oft zugegriffen wird, und Langzeitdaten remote zu behandeln. Aber auch dieser Ansatz ist nicht einfach. Beim Cachen geht ein Großteil der Power flöten, wenn über Datenstrukturen buchgeführt wird, und der Upload der Daten kann die CPU in die Knie zwingen. Deswegen haben die Netflix-Entwickler sich dazu entschlossen Hollow zu entwickeln – das den Vorgänger Zeno ablöst.

If you can cache everything in a very efficient way, you can often change the gameand get your entire dataset in memory using less heap and CPU than you would otherwise require to keep just a fraction of it.

Das kann Hollow

Hollow ist darauf spezialisiert, read-only Datensets in-memory auf den Kosumenten zu halten. Es umgeht so die negativen Auswirkungen von Daten-Updates oder Löschungen von einem partiellen Cache. Außerdem können damit größere Datensets als bisher in-memory gespeichert werden. Aber die Entwickler warnen, dass man es nicht übertreiben soll. Zu große Datensets in-memory zu halten sei nicht sinnvoll. Ein weiterer Pluspunkt von Hollow ist, dass es automatisch ein maßgeschneidertes API basierend auf einem spezifischen Datenmodell zu Verfügung stellt. So können Konsumenten intuitiv mit den Daten interagieren, inklusive IDE Code Completion. Hollow ist nicht anfällig für Umgebungsprobleme wie Netzwerkausfälle, Festplattenfehler oder „noisy neighbours“ in einer zentralisieren Datenbank. Die Netflix-Entwickler nutzen es für kritische Datensets auf Servern, die Echtzeit-Anfragen von Kunden abarbeiten.

Hollow Datensets sind „self-contained“. Das bedeutet, dass kein anwendungspezifischer Code gebraucht wird, damit das Framework mit den Daten arbeiten kann. Sich ändernde Datenmodelle sind kein Problem. Die Abwärtskompatibilität soll stets gewahrt sein. Mit dabei sind auch einige nützliche Tools. Mit einem einfachen Query zeigt zum Beispiel das History Tool genau den Punkt an, an dem etwas im Datenset geändert wurde. Mit eine Roollback kurz vor diesen Zeitpunkt ist das Problem dann behoben.

Geschrieben von
Gabriela Motroc
Gabriela Motroc
Gabriela Motroc ist Online-Redakteurin für JAXenter.com. Vor S&S Media studierte Sie International Communication Management an der The Hague University of Applied Sciences.
Kommentare

Hinterlasse einen Kommentar

Hinterlasse den ersten Kommentar!

avatar
400
  Subscribe  
Benachrichtige mich zu: