Terracotta: In-Memory ohne Appliance

Während viele Anbieter mit aufwendigen Appliances oder anderen Hard- und Softwarekombinationen auf den In-Memory-Markt drängen, gibt es zunehmend mehr auf Standard-Hardware aufsetzende Angebote, die keine oder nur minimale Änderungen an den Anwendungsprogrammen benötigen – beispielsweise Terracotta von der Software AG.

In Pocket speichern vorlesen Druckansicht 14 Kommentare lesen
Lesezeit: 7 Min.
Von
  • Harald Weiss
Inhaltsverzeichnis

In-Memory ist in aller Munde. Performanceverbesserungen um Faktoren von 1000 bis 10.000 sowie neue Verarbeitungs- und Datenstrukturen beherrschen die Diskussion. Während viele Anbieter mit aufwendigen Appliances oder anderen Hard- und Softwarekombinationen auf den Markt drängen, gibt es zunehmend mehr auf Standard-Hardware aufsetzende Angebote, die keine oder nur minimale Änderungen an den Anwendungsprogrammen benötigen – beispielsweise Terracotta von der Software AG.

Der In-Memory-Verarbeitung gehört anscheinend die Zukunft. Sowohl Big Data als auch die zunehmenden Forderungen nach Real-Time Processing machen aus Festplatten nur noch Archivierungssysteme. Zu Gartners Liste der gegenwärtig zehn heißesten IT-Techniken gehört ebenfalls In-Memory. Wobei die Gartner Analysten neben den bekannten Geschwindigkeitsvorteilen vor allem auf die Architekturunterschiede bei der Datenorganisation eingehen: "In-Memory erlaubt erstmals die parallele Abarbeitung transaktionsorientierter und analytischer Anwendungen auf demselben Datenbestand", sagt deren Analyst David Cearly.

Doch der wesentliche Vorteil ist sicherlich die extrem schnelle Verarbeitung, die Unternehmen aber nur erreichen, wenn sie alles In-Memory halten. Oder, wie es SAPs Co-Chef Jim Hagemann Snabe formulierte: "Man ist entweder komplett In-Memory – oder man ist es nicht. Es gibt nichts dazwischen, weil bei jedem Mix die langsameren Festplatten das Tempo diktieren." SAPs In-Memory-Plattform ist die Appliance HANA. Inzwischen gibt es sie sowohl in großen Installationen als auch nur scheibchenweise in der AWS-Cloud (Amazon Web Services).

Der große Nachteil von HANA ist, dass sich Programme nicht eins zu eins darauf übertragen lassen. Denn um die Vorteile der Plattform voll auszuschöpfen, muss die Software in SQL Script oder R erstellt sein. Und um nicht nur die schnelle HANA-Datenbank, sondern vor allem auch die Parallelverarbeitung vollends auszuschöpfen, ist die Abarbeitung in viele kleine Prozesse aufzuteilen, die sich dann weitgehend unabhängig voneinander starten lassen.

Diese Einschränkungen rufen zunehmend mehr Anbieter auf den Markt, die ein In-Memory Computing mit Standard-Hard- und -Software realisieren. Hierzu gehören die großen IT-Anbieter IBM, Microsoft, VMware (mit GemFire) und Oracle – aber auch kleine Start-ups, wie McObject, Platfora, QlikTech und Aerospike. Besonders interessant ist die Technik von Terracotta, einem kalifornischen Unternehmen, das im Mai 2011 von der Software AG aufgekauft wurde. Deren BigMemory-Software erlaubt eine unbegrenzte Nutzung des Hauptspeichers eines Servers. Diese Software gibt es in zwei Versionen: BigMemory Go und BigMemory Max. Die Go-Version erlaubt die gesamte Nutzung des Hauptspeichers eines Servers, und mit BigMemory Max lässt sich der Hauptspeicher über mehrere Server hinweg zu einem einzigen In-Memory-Storage-Array verbinden.

BigMemory Go: In-Memory Big Data auf einer JVM

(Bild: Terracotta)

Beide BigMemory-Versionen speichern die Daten in Form einfacher Java-Objekte, weil BigMemory zunächst für Java-Applikationen entwickelt wurde. Ziel war es, für eine Java Virtual Machine (JVM) eine bessere Hauptspeicher-Ausnutzung zu erreichen. Zwar akzeptieren die Nodes heute bereits hohe Hauptspeicherwerte von 16, 32 oder noch mehr Gigabytes. Doch die bekannten Probleme von Javas Garbage Collection (GC) begrenzen die effektive Nutzung des verfügbaren Speichers. Je größer die jeweiligen Heaps sind, desto häufiger ist eine GC-Operation durchzuführen. In den meisten Fällen sind zwei Gigabyte die praktische Obergrenze für ein Java-Heap.

BigMemory schafft jetzt eine weitere Ebene zwischen den schnellen Heap-Abrufen und den langsamen Disk-Zugriffen, indem es einen Daten-Cache dazwischen schiebt. Dafür sind zwar alle Daten in der Form Schlüssel/Wert zu serialisieren, doch die damit verbundenen geringen Performanceeinbußen sind im Vergleich zu den sonst erforderlichen Plattenzugriffen vernachlässigbar. Laut Karl-Heiz Streibich, CEO der Terracotta-Muttergesellschaft Software AG, ergeben sich durch diese In-Memory-Technik Performanceverbesserungen um den Faktor 1000.

Erreicht wird die Leistung von BigMemory durch eine komplette Speicherverwaltung, die das gesamte RAM eines Servers managt – egal wie groß es ist. Da Server mit einem Terabyte RAM zunehmend populärer werden, bedeutet das, dass für viele Anwendungen alle erforderlichen Daten direkt hauptspeicherresident bereitstehen können. Für die Nutzung von BigMemory Go sind auch keine Änderungen an den bestehenden Java-Anwendungen erforderlich, denn zum Angebot gehören de facto Java APIs, die alle GET- und PUT-Anweisungen auf das eigene Memory-Management umlenken. Damit entfallen alle mit Java einhergehenden Datenmanagement-Beschränkungen, und die Anwendungen können sofort den gesamten Hauptspeicher vollends für sich nutzen. Hinzu kommen bei BigMemory Go noch administrative Tools, wie automatisches Disk-Backup, Datenkompression, Verschlüsselung, Suchfunktionen und Restart-Features.