Bewegen Sie sich über Memcached und Redis, hier kommt Netflix's Hollow

Nach zwei Jahren interner Nutzung bietet Netflix ein neues Open Source-Projekt als leistungsstarke Option zum Zwischenspeichern von Datensätzen an, die sich ständig ändern.

Hollow ist eine Java-Bibliothek und ein Toolset zum In-Memory-Caching von Datensätzen mit einer Größe von bis zu mehreren Gigabyte. Laut Netflix verfolgt Hollow drei Ziele: Es soll die Speicherung von Daten effizienter gestalten. Es kann Tools zum automatischen Generieren von APIs für den bequemen Zugriff auf die Daten bereitstellen. und es kann Datenverwendungsmuster automatisch analysieren, um eine effizientere Synchronisierung mit dem Back-End zu ermöglichen.

Lassen Sie uns das zwischen uns behalten

Die meisten Szenarien zum Zwischenspeichern von Daten auf einem System, auf dem sie nicht gespeichert sind - ein "Consumer" -System anstelle eines "Producer" -Systems - umfassen die Verwendung eines Produkts wie Memcached oder Redis. Hollow erinnert an beide Produkte, da es In-Memory-Speicher für den schnellen Zugriff verwendet, aber kein tatsächlicher Datenspeicher wie Redis ist.

Im Gegensatz zu vielen anderen Daten-Caching-Systemen soll Hollow an einen bestimmten Datensatz gekoppelt werden - ein bestimmtes Schema mit bestimmten Feldern, normalerweise einen JSON-Stream. Dies erfordert einige Vorbereitungsarbeiten, obwohl Hollow einige Tools zur teilweisen Automatisierung des Prozesses bereitstellt. Der Grund dafür: Hollow kann die Daten im Speicher als stark typisierte Blöcke fester Länge speichern, die nicht der Garbage Collection von Java unterliegen. Dadurch sind sie schneller zugänglich als herkömmliche Java-Objekte.

Ein weiterer angeblicher Segen von Hollow ist, dass es eine Reihe von Werkzeugen für die Arbeit mit den Daten bietet. Sobald Sie ein Schema für die Daten definiert haben, kann Hollow automatisch eine Java-API erstellen, die einer IDE Daten zur automatischen Vervollständigung bereitstellen kann. Die Daten können auch nachverfolgt werden, wenn sie sich ändern, sodass Entwickler Zugriff auf Snapshots zu bestimmten Zeitpunkten, Unterschiede zwischen Snapshots und Daten-Rollbacks haben.

Rundum schneller

Viele der Vorteile, die Netflix für Hollow behauptet, betreffen die grundlegende betriebliche Effizienz - nämlich eine schnellere Startzeit für Server und eine geringere Speicherabwanderung. Die Datenmodellierungs- und -verwaltungstools von Hollow sollen jedoch auch bei der Entwicklung helfen und nicht nur die Produktion beschleunigen.

„Stellen Sie sich vor, Sie können Ihren gesamten Produktionsdatensatz - aktuell oder von einem beliebigen Zeitpunkt in der jüngeren Vergangenheit - schnell auf eine lokale Entwicklungsarbeitsstation übertragen, ihn laden und dann bestimmte Produktionsszenarien exakt reproduzieren“, heißt es in seinem einführenden Blogbeitrag.

Eine Einschränkung ist, dass Hollow nicht für Datensätze aller Größen geeignet ist - "KB, MB und GB, aber nicht TB", wie das Unternehmen es in seine Dokumentation einfügt. Netflix impliziert jedoch auch, dass Hollow die für einen zwischengespeicherten Datensatz erforderliche Ausbreitung reduziert. "Mit dem richtigen Framework und ein wenig Datenmodellierung ist dieser [Speicher-] Schwellenwert wahrscheinlich viel höher als Sie denken", schreibt Netflix.