carloscastilla - Fotolia

Oracle-Lösungen vereinen mehrere In-Memory-Ansätze

Oracle bietet verschiedene Formen für die In-Memory-Datenspeicherung an: Oracle TimesTen und Database In-Memory. Diese unterscheiden sich aber grundsätzlich.

Das In-Memory-Flaggschiffprodukt von Oracle ist TimesTen Scaleout (auch Oracle TimesTen In-Memory Database Scaleout). Es gehört zur Familie des relationalen Datenbankmanagementsystems (RDBMS) TimesTen, das mit der Übernahme durch Oracle 2005 in das Portfolio des Unternehmens gewandert ist.  

Das ursprüngliche Produkt wird heute unter der Bezeichnung TimesTen Classic oder TimesTen In-Memory Database vertrieben. Es ist ein komplettes In-Memory-RDBMS, das als Stand-Alone System auf einem Node betrieben werden kann. Ergänzt wurde dieses System um zwei grundlegende Erweiterungen. Neben TimesTen Scaleout gibt es noch die RDBMS-Erweiterung TimesTen Cache.

All-In-Memory-Grid für maximale Performance

TimesTen Scaleout ist Oracles neueste und leistungsstärkste In-Memory-Lösung. Der große Unterschied zur Classic-Version ist die Multi-Node-Fähigkeit, mit der sich sehr große Grid-Version von TimesTen einrichten lassen, die sich über viele Nodes erstrecken.

TimesTen Classic und Scaleout sind aufgrund ihrer kurzen Response-Zeit sowohl für OLTP- als auch OLAP-Anwendungen geeignet, bei denen Echtzeitdaten für die Entscheidungsfindung benötigt werden, zum Beispiel in Telekommunikationsunternehmen, Banken und Online-Shops.

Bei TimesTen Cache handelt es sich dagegen um eine In-Memory-Ebene im Rahmen des hierarchischen Storage Tiering. TimesTen Cache ist die erste Storage-Ebene zwischen den Anwendungen und der Oracle Database. Hierin werden alle leistungskritischen Tabellen und Tabellenfragmente gespeichert.

Mittels leistungsfähiger Zugriffsalgorithmen und optimierter Datenstrukturierung werden die Transaktionsvorgänge im Vergleich zu Oracles herkömmlichen Datenbanken wesentlich schneller ausgeführt. Darüber hinaus kann TimesTen Cache so in eine Anwendung eingebettet werden, dass die Kommunikation zwischen den Prozessen deutlich verringert wird.

Alle drei TimesTen-Versionen nutzen für die Datensicherheit Festplattenspeicher, im ersten und zweiten Fall allerdings nur für Backup und Wiederherstellung. Bei der Cache-Version sind HDDs oder SDDs ohnehin der Backbone der jeweiligen Datenbankimplementierung.

TimesTen wird über die klassischen Datenbankaufrufe, wie SQL, JDBC, ODBC, PL/SQL sowie das Oracle Call Interface (OCI) angesprochen, wobei SQL die sicherste Form ist, um die Anwendungen von der darunter befindlichen Datenbankstruktur zu entkoppeln.

Database In-Memory als RDBMS-Ergänzung

Parallel zu TimesTen bietet das Unternehmen auch Oracle Database In-Memory an. Diese kam mit der Version 12c, Release 1 heraus und wurde seitdem fortlaufend weiterentwickelt. Sie ist kompatibel mit allen nachfolgenden Versionen, bis zur aktuellen Version 18c.

Oracle Database In-Memory ähnelt der In-Memory-Lösung von Teradata und TimesTen Cache. Es handelt sich ebenfalls nicht um eine All-In-Memory-Datenbank, sondern um eine Mischform mit umfangreichen In-Memory-Funktionalitäten. Diese ergänzen den bestehenden Data Cache sowie die anderen Storage-Ebenen.

Die Storage-Tiering-Technologien von Oracle zum Scale-Up und Scale-Out kommen auch hier weiterhin zum Einsatz, womit eine kosteneffiziente Lösung für jede Art und Größe von Workloads möglich ist. Das bedeutet auch, dass durch die Erweiterung der Datenbankarchitektur auf einen zusätzlichen In-Memory-Bestandteil keine Einbußen bei der Datensicherheit anfallen, denn alle In-Memory-Transaktionen werden ebenfalls auf den externen Speichereinheiten repliziert.

Spaltenorientierte Speicherung

Oracle Database In-Memory erlaubt vor allem eine spaltenorientierte Datenspeicherung im Hauptspeicher, was für viele Anwendungen erhebliche Performance-Vorteile bringt. Spaltendaten beinhalten häufig über viele Zeilen hinweg den gleichen Wert, was sich wiederum für eine effiziente Komprimierung anbietet, wodurch die Performance verbessert werden kann.

Durch das Einbetten des In-Memory-Spaltenformats in die vorhandene Oracle Datenbank wird die Kompatibilität mit allen vorhandenen Funktionen erzielt. Folglich sind keine Änderungen bei den Anwendungsprogrammen notwendig. Lediglich an der Parametrisierung der Datenbank sind zusätzliche Definitionen erforderlich, vor allem, was die permanente RAM-Speicherung von bestimmten Spalten angeht.

Dual Mode: Spalten und Zeilen

Bezüglich der parallelen Zeilen- und Spaltenstruktur spricht man bei Oracle von einer Dual-Mode-Architektur. „Oracle Database In-Memory erlaubt sowohl das Datenmanagement im bekannten Oracle-Zeilenformat für OLTP-Prozesse als auch im reinen In-Memory-Spaltenformat für analytische Anwendungen“, heißt es in der Produktbeschreibung der In-Memory-Erweiterung.

Oracle Database In-Memory beschleunigt sowohl Data-Warehouse- als auch OLTP-Anwendungen mit unterschiedliche Workloads.

Ein weiterer Vorteil der In-Memory-Ergänzung besteht darin, dass sich diese dynamisch an den vorhandenen Arbeitsspeicher anpasst. Somit kann der Benutzer zwischen teurem RAM einerseits und benötigter Performance andererseits frei wählen – und dieses kann es je nach Anforderungsprofil „on the fly“ anpassen.

Oracle Database In-Memory beschleunigt sowohl Data-Warehouse- als auch OLTP-Anwendungen mit unterschiedliche Workloads. Folglich lassen sich mit einer einzigen Datenbank gemischte Workloads abarbeiten. Laut Oracle lassen sich durch das Hinzufügen der In-Memory-Funktion Performance-Verbesserungen um den Faktor vier bis hin zum Faktor 27 erzielen.

Nicht immer schneller

Doch die Dual-Architektur hat auch Nachteile. So gibt es bei den zeilenorientierten Inserts und Updates keine Performance-Verbesserungen, da diese weiterhin im Buffer Cache ausgeführt werden. Erst bei Operationen mit dezidierten Spalten oder Tabellen, die im Arbeitsspeicher gehalten werden, ergeben sich Verbesserungen. Und bei Sort-Prozessen, denen eine zu kleine Sort Area zugewiesen wurde, fallen Festplattenzugriffe an, die die Performance erheblich beeinträchtigen können.

Der große Unterschied zwischen der In-Memory- und den All-In-Memory-Versionen von TimesTen ist, dass die fundamentalen Operationen von unterschiedlichen Annahmen ausgehen. Während bei TimesTen Cache und der Oracle Database In-Memory davon ausgegangen wird, dass der größte Teil der Daten weiterhin auf externen Storage-Einheiten abgelegt ist, basieren TimesTen Classic und TimesTen Scaleout auf der Annahme, dass alle Daten In-Memory abgelegt sind.

Dadurch ergeben sich unterschiedliche Optimierungs- und Zugriffsfunktionen und Algorithmen. Zum Beispiel sind bei All-In-Memory-Lösungen Indextabellen nicht erforderlich, da ein sequentielles Durchsuchen schnell genug ist. Ebenso entfallen die Cache- und Buffer-Bereiche sowie die damit verbundenen Operationen.

Folgen Sie SearchEnterpriseSoftware.de auch auf Twitter, Google+, Xing und Facebook!

Nächste Schritte

In-Memory-Computing: Oracle und SAP im Kampf um die Marktführerschaft.

In-Memory-Analytics: Oracle Exalytics schlägt SAP HANA.

Oracle In-Memory-Option in Database 12c: Einführung und Implementierung.

Erfahren Sie mehr über Business-Software