Oracle 01.10.2014, 05:02 Uhr

Larrys Top-Tipps für Cloud-DBs

Oracle-CTO Larry Ellison migrierte auf der Open World live Datenbanken und Java-Apps in die Cloud. Eine Sache von fünf Mausklicks und drei Minuten. Was gerne verschwiegen wird: Um alle Performance-Vorteile auszuschöpfen, ist dennoch Handarbeit angesagt.
Larry Ellison auf der Open World in San Francisco: Als CTO muss ich mich um meine Live-Demos jetzt selber kümmern.
Oracle-Frontmann Larry Ellison zeigte auf der Open World in San Francisco live, wie man in drei Minuten eine On-premise-Datenbank samt Applikationen n die Cloud migriert. "Ich bin jetzt Chief Technology Officer und muss mich um meine Demos selber kümmern", scherzte Ellison, der vor wenigen Tagen von seinem Posten als CEO zurückgetreten war. Als Live-Demonstrationsobjekt diente ihm die 250 GigaByte grosse Datenbank "Wikipedia Search Trends" mit aufgespielter In-Memory-Option (Oracle 12c). Die Suche nach "Federer" in über vier Milliarden Tabellenzeilen dauerte lediglich eine knappe Sekunde. Ohne In-Memory-Option braucht das Query einige Minuten. Das grafisch aufbereitete Ergebnis zeigte an, wie häufig in den letzten Wochen in Wikipedia nach dem Schweizer Tennisstar gesucht worden ist. Die Migration in die Cloud erledigte Ellison zwar nicht auf Knopfdruck (push of a button). Die Arbeit war jedoch nach einer Handvoll Mausklicks und einigen Tastatureingaben erledigt. "Ich wollte euch zeigen, wie einfach das ist", meinte er. Die Query-Performance in der Cloud war die gleiche: vier Milliarden Tabellenzeilen in einer Sekunde, denn auch in der Cloud lief Oracles 12c mit In-Memory. Und die Cloud bringt weitere Vorteile: Migrierte Datenbanken werden automatisch multitenant-fähig, nutzen also Ressourcen effizienter. Sie würden ausserdem um den Faktor 1:10 komprimiert und aus Sicherheitsgründen verschlüsselt, betonte Ellison. 

Nicht ganz so einfach...

Jede Oracle-Datenbank läuft auf der Cloud-Plattform Database-as-a-Service, jede Java-App auf Java Platform-as-a-Service und jede nicht in Java programmierte Applikation auf Oracles Infrastructure-as-a-Service-Layer. Oracle offeriert alle drei Layer, kann leicht zwischen on-premise und Cloud wechseln und punktet damit gegenüber der Konkurrenz. Ohne bei der Migration eine einzige Codezeile ändern zu müssen, wie Ellison immer wieder betont. Das stimmt zwar im Prinzip. Um die Performance-Gewinne einer Cloud-Datenbank mit In-Memory-Funktion voll auszuschöpfen, sollte man aber dennoch einige Grundregeln beherzigen.

Indizes optimieren

Indizes sind die Feinde einer In-Memory-Datenbank. SIe beschleunigen in normalen Datenbanken die Suche und belegen schnell mehr Speicherplatz als die eigentlichen Hauptdaten. Analytische Indizes sind in In-Memory-Datenbanken aber nicht mehr nötig. Deshalb sollte man sie entfernen, solange dadurch nicht die referentielle Integrität der Daten gefährdet wird. Das ist zum Beispiel bei Primär- und Sekundärschlüsseln der Fall. Auch Indizes, die für Transaktionen benötigt werden, müssen bleiben. Partitionierung hilft auch bei In-Memory-Systemen, eine grosse, nur schwer handhabbare Datenbank in kleinere Portionen aufzuteilen. Einzelne Partitionierungen lassen sich ausserdem leichter für bestimmte Einsatzszenarien optimieren: etwa für Queries oder für Storage-Kapazität (Partition p2 InMemory MemCompression for Query/for Capacity).

Statistische Müllabfuhr

Eine In-Memory-Datenbank ist nicht das Gleiche wie ein Buffer Cache, auch wenn beide die Performance erhöhen. Oracles In-Memory-Option organisiert die Daten jeder Tabelle nach Reihen UND nach Kolumnen. So macht das auch SAP Hana. Analytische Funktionen setzen ausserdem ein neues vektor-optimiertes In-Memory-Format ein, was die Ausführungsgeschwindigkeit weiter erhöht. Daten im Arbeitsspeicher veralten aber nicht, sondern bleiben dort gespeichert. Ein Buffer Caches dagegen löscht Daten, die in letzter Zeit wenig genutzt worden sind, nach dem LRU-Prinzip (least recently used) automatisch. Dieser Aufräum-Mechanismus fehlt bei In-Memory-Systemen, Daher sollten Admins von den integrierten Statistikfunktionen DBMS_Stats Gebrauch machen, um zu überprüfen, wie stark welche Datenbanktabellen und Kolumnen im Arbeitsspeicher genutzt werden, und sie gegebenenfalls umstrukturieren.

Fazit

Oracles In-Memory-Lösung, ob on-premise oder in der Cloud, ist einfach nutzbar, ohne eine Codezeile an Datenbank und Java-Apps ändern zu müssen. Die Migration geht offensichtlich leicht von der Hand und bringt automatisch viele Vorteile. Um in den Genuss aller Performance-Gewinne zu gelangen, ist jedoch trotzdem Handarbeit angesagt.



Das könnte Sie auch interessieren