Oracle, IBM, HSQLDB, SQLite

In-Memory-Datenbanken im Vergleich

31.07.2012
Von Roland Stirnimann und Jan Ott

Oracle TimesTen

Oracle TimesTen
Oracle TimesTen

Oracle hat TimesTen im Jahr 2005 gekauft und die gleichnamige In-Memory-DB seitdem kontinuierlich weiterentwickelt. Hinsichtlich Funktionsumfang und Lizenzierung bewegt sich die Datenbanklösung auf Enterprise-Niveau und ist sowohl für Linux und Unix als auch für Windows-Plattformen erhältlich. Neben dem Betrieb als eigenständige Datenbank lässt sich TimesTen vor allem auch als Cache für bestehende Oracle-Tabellen verwenden. Diese werden dabei vollständig oder partiell als sogenannte Cache Groups in TimesTen geladen. Spezielle Prozesse sorgen anschließend dafür, dass die Daten - je nach Anwendungsfall - synchron oder asynchron in die Oracle-Datenbank geschrieben werden. Das beschleunigt den Zugriff auf Business-relevante Geschäftsdaten und sorgt auch bei hoher Systemlast für einen unterbrechungsfreien Betrieb der zugehörigen Datenbank-Server. Auch das automatische Nachladen neuer Daten aus dem relationalen Datenbank-Management-System (RDBMS) funktioniert problemlos, leider wird jedoch für die Cache Groups bisher nur die Oracle-Plattform unterstützt.

Damit der In-Memory-Datenbank nicht der Platz ausgeht, muss der Cache regelmäßig bereinigt werden (Aging). TimesTen bietet dazu zwei Vorgehensweisen - "time-based" oder "least recently used" (LRU). Dabei passt sich die Lösung immer mehr an das Oracle RDBMS an. So findet der Datenbankadministrator zum Beispiel ein Data Dictionary mit Tabellen wie DBA_USERS oder DBA_OBJECTS vor. Datenbankentwickler können sich zudem über die Unterstützung von PL/SQL freuen.

Dennoch finden sich bei Weitem noch nicht alle Pakete und SQL-Funktionen aus dem Oracle RDBMS auch in TimesTen. Beim Portieren einer Applikation vom Oracle RDBMS auf TimesTen sind viele Anpassungen am Code erforderlich. Den damit verbundenen Zeitaufwand sollten Anwender nicht unterschätzen und in ihrer Budget- und Projektplanung berücksichtigen.

TimesTen verfügt zudem über diverse Replizierungsvarianten (synchron/asynchron, uni-/bidirektional). So lässt sich beim Ausfall einer TimesTen-Instanz sofort ein Failover initiieren und somit ein unterbrechungsfreier Betrieb sicherstellen.

Zur Startseite