Marcel Poltermann Fachhochschule Erfurt Informationsmanagement
Inhaltsverzeichnis Glossar...III Abbildungsverzeichnis...III 1 Erläuterung:... 2 2 Technische Grundlagen... 2 2.1 Zugriff physische Datenträger:... 3 2.2 Zugriff In-Memory Daten:... 5 3 Datensicherheit... 5 3.1 Snapshots... 5 3.2 Nichtflüchtiger Arbeitsspeicher (NVRAM)... 5 3.3 Protokolldateien (Datenbanken)... 6 4 Relevanz... 6 5 Benchmark... 6 5.1 SAP HANA Oracle: Anfragen... 7 5.2 SAP HANA Oracle: Data Load... 7 5.3 SAP HANA SAP BWA: Anfragen... 7 6 Zusammenfassung... 7 Anhang A Quellenverzeichnis Literatur... IV Anhang B Quellenverzeichnis Bilder... IV 01.01.2015 Marcel Poltermann II
Glossar Wort API Big-Data Flash-Speicher Kernelmode SAP-HANA Server-Cluster SSD Systembibliothek (DLL) Thread Treiber Usermode Erklärung Programmierschnittstelle für Entwickler Große und komplexe Datenmengen Speicherbausteine für nicht-flüchtigen Speicher Höchster Privilegierungsstufe aktueller Prozessoren In-Memory Computing Plattform Verbund von Servern Physisches Speichermedium auf Basis von Flash-Speicher Programmbibliothek des Betriebssystems Ausführungsstrang Teil eines Prozesses Softwaremodul im kernelmode Niedrigste Privilegierungsstufe aktueller Prozessoren Abbildungsverzeichnis Abbildung Bildbeschreibung Seite Abbildung 1 Ablauf eines 3 Festplattenzugriffs unter Windows NT Abbildung 2 Aufbau einer Festplatte 4 01.01.2015 Marcel Poltermann III
1 Erläuterung: beschreibt ein Konzept, welches darauf abzielt, die Zugriffe auf physische Datenträger bei der Verarbeitung von Daten auf ein Minimum zu reduzieren und den zu verarbeitenden Teil der Daten weitestgehend im Arbeitsspeicher zu halten. Dies führt zu einer deutlichen Verkürzung von Zugriffszeiten auf die Daten und somit zu einer besseren Performance der analytischen Anwendungen 1. Unter fallen allerdings nicht nur spezielle In- Memory Datebenbanklösungen, wie sie mittlerweile von größeren Unternehmen wie SAP, Microsoft oder Oracle angeboten werden, sondern alle Applikationen welche ihre Datenanalyse an Daten durchführen, welche zum Großteil Arbeitsspeicherresident sind. 2 Technische Grundlagen Um den Unterschied zwischen klassischen Systemen und In-Memory Systemen besser zu verstehen folgt eine Erläuterung von technische Grundlagen, welche den Zugriff auf Daten bei physischen Datenträgern und bei bereits im Arbeitsspeicher befindlichen Daten beschreibt. 1 Vgl. http://www.searchenterprisesoftware.de/definition/in-memory-analytics 01.01.2015 Marcel Poltermann 2
2.1 Zugriff physische Datenträger: Bei dem klassischen Zugriff auf physische Datenträger, muss die zugreifende Anwendung eine Reihe von Systembibliotheken und Treibern durchlaufen. Abbildung 1: Ablauf eines Festplattenzugriffs unter Windows NT [Windows NT File System Internals - A Developer's Guide] Wie man in Abbildung 1 sehen kann kommt eine Lese- oder Schreibeanfrage von dem Thread einer Applikation aus dem Usermode. Diese Anfrage wird über eine Schnittstelle an den I/O Subsystem Manager Treiber übergeben, welcher dafür zuständig ist eben solche Anfragen an die betreffenden File System Driver weiterzureichen. Dieser ist wiederum dafür zuständig, den Zugriff auf das jeweils passende Dateisystem zu handhaben (z.b.: FAT, NTFS unter Windows). Daraufhin wird die Anfrage an den passenden Disk Driver weitergereicht, welcher nun dafür zuständig ist den physischen Zugriff auf die betreffenden physischen Speichermedien zu verwalten 2. In der Abbildung fehlend sind die Usermode Bibliotheken welche die Anfragen, welche über die passende Betriebssystem-API zu Verfügung gestellt werden, zu formatieren und zu validieren (im Fall von Windows z.b. kernel32.dll und ntdll.dll) welche ebenfalls die Zugriffszeit auf das Speichermedium anheben. Auch der Wechsel zwischen Usermode und Kernelmode selbst führt zu einer Verzögerung. Der Großteil der Verzögerung kommt dann allerdings durch den mechanischen Zugriff auf die Daten bei klassischen Festplatten. 2 Vgl. Windows NT File System Internals - A Developer's Guide (1997) Seite 22 01.01.2015 Marcel Poltermann 3
Abbildung 2: Aufbau einer Festplatte [technet.microsoft] Wie man in Abbildung 2 erkennen kann besteht eine Festplatte auf mehreren Platten (Platter) und Lese- und Schreibköpfen (Read/Write Heads). Die Platten enthalten mehrere Spuren (Tracks) welche selbst wiederrum Sektoren (Sectors) enthalten, in welchen die Daten gespeichert werden. Bei einem Lese- oder Schreibzugriff muss nun der Lese- und Schreibkopf als erstes an die korrekte Position bewegt und dann zur richtigen Zeit ein oder mehrere Lese- oder Schreibvorgänge durchgeführt werden. Sind die Daten fragmentiert muss der Kopf für das Lesen oder Schreiben einer Datei mehrmals die Position wechseln, wobei jeder Positionswechsel wieder eine Verzögerung zur Folge hat. In modernen Festplatten bei der sich die Platten mit 7.200U/Min drehen, liegt die Durchschnittliche Zugriffszeit somit bei ca. 8-10 Millisekunden und die Übertragungsgeschwindigkeit bei etwa 200MB lesend und schreibend, wobei der Wert mit der Größe der zu übertragenden Dateien skaliert (je größer desto besser). Eine Ausnahme stellen da allerdings SSDs dar, welche nicht auf dem mechanischen Konzept klassischer Festplatten beruhen sondern Flash-Speicher als Speichermedium nutzen. Da hier die Suche des Lese- und Schreibkopfes entfällt und lediglich ein Mikrocontroller dafür zuständig ist die korrekte Position der Daten im Flash-Speicher zu finden, verringert sich die Zugriffszeit bei SSDs deutlich und liegt somit um Durchschnitt bei 0,1 bis 0,2 Millisekunden. Auch wirkt sich die Nutzung der Flash-Speicher positiv auf die Übertragungsgeschwindigkeit von SSDs aus, welche mit ca. 500MB lesen und schreiben über den herkömmlichen Festplatten liegt. 01.01.2015 Marcel Poltermann 4
2.2 Zugriff In-Memory Daten: Der im vorherigen beschriebene Vorgang zum Zugriff auf physische Speichermedien dient letzten Endes dazu, die Daten aus diesem Speichermedium in den Arbeitsspeicher zu übertragen. Das heißt dass für den Zugriff von Daten, die bereits im Arbeitsspeicher vorhanden sind, die daraus resultierende Verzögerung vollständig entfällt und die Übertragungsgeschwindigkeit als auch die Zugriffszeit nur durch den Arbeitsspeicher selbst limitiert werden. Ein Zugriff ist auf Speicher, der bereits im Arbeitsspeicher vorhanden ist, ist daher ein direkter Zugriff auf die betreffenden Daten, ohne einen Umweg über das Betriebssystem oder dritte Hardware nehmen zu müssen. Entsprechend gut ist daher auch die daraus resultierende Leistung. Die Zugriffszeit auf Arbeitsspeicher liegt im Durchschnitt unter 100 Nanosekunden und die Übertragungsgeschwindigkeit für aktuellen Arbeitsspeicher (DDR3-2133) bei 17 Gigabyte pro Sekunde je Speichermodul 3. Zwar können durch den Speichermanager des Betriebssystems ebenfalls Verzögerungen entstehen, diese betreffen allerdings alle Arten von Lösungen und sind an dieser Stelle nicht relevant. 3 Datensicherheit Da bei so viele Daten wie möglich im Arbeitsspeicher gehalten werden sollen, kann ein Absturz des Systems fatale Folgen für die Daten haben. Deshalb gibt es verschiedene Möglichkeiten um die Persistenz von Daten zu gewährleisten und den Schaden, der durch einen Systemabsturz entstehen kann, so weit wie möglich zu minimieren 4. 3.1 Snapshots In vordefinierten Abständen werden vollständige Speicherabbilder vom Zustand der In-Memory Lösung gemacht. Diese Abbilder können dazu genutzt werden, um im Falle eines Ausfalls den Zustand wiederherzustellen. 3.2 Nichtflüchtiger Arbeitsspeicher (NVRAM) Anstatt die Daten im flüchtigen Arbeitsspeicher zu halten werden nichtflüchtige Arbeitsspeicher genutzt, welche auch nach einem Ausfall des Systems ihren Zustand beibehalten können. Man kann auch eine Kombination von flüchtigen und nicht-flüchtigen Arbeitsspeicher nutzen um die Datensicherheit zu erzielen. 3 Vgl. http://www.elektronik-kompendium.de/sites/com/1312291.htm 4 Vgl. http://de.wikipedia.org/wiki/in-memory-datenbank#nicht-persistenz 01.01.2015 Marcel Poltermann 5
3.3 Protokolldateien (Datenbanken) Bei Datebenbanklösungen welche auf der In-Memory Technologie basieren, kann man zusätzliche Protokolldateien nutzen um im Falle eines Ausfalls über die Protokolle den Zustand vor dem Ausfall zu rekonstruieren. 4 Relevanz Durch die voranschreitende Entwicklung im Bereich der Computer Hardware werden auch In-Memory Lösungen erschwinglicher. Systeme mit 1TB Ram sind mittlerweile für $20.000 erhältlich und somit auch für mittelständische Unternehmen bezahlbar 5. Somit wird die In-Memory Technologie durch fallende Preise und deutlich besserer Leistung als klassische Systeme, welche auf physischen Speichermedien allein beruhen, immer attraktiver. Des Weiteren liegt zwar momentan der Fokus noch auf für Datenbanken, doch werden auch andere Bereiche durch die fallende Preise und steigende Leistung von Hardware mit der Zeit relevanter, da jede Applikation welche mit größeren Mengen von Daten arbeiten muss, einen Leistungsgewinn über die In-Memory Technologie erfahren kann. 5 Benchmark Im Folgenden finden sich die Ergebnisse von Benchmarks zwischen klassischen Business Warehouse Lösung von SAP, SAP HANA und einer Oracle Lösung. Ausgangspunkt sind 15TB an Daten, an welche die 100 meistgenutzten Anfragen gestellt und die Leistung der einzelnen Systeme verglichen wird. Die genutzte Hardware für die SAP HANA Lösung war dabei ein Server-Cluster von 30 HP DL- 980 Servern mit 512 GB Arbeitsspeicher und 40 Prozessorkernen 6. 5 Vgl. http://gridgain.com/four-myths-of-in-memory-computing/ 6 Vgl. http://sapinsider.wispubs.com/assets/blogs/2013/september/real-hana-performance-test- Benchmarks 01.01.2015 Marcel Poltermann 6
5.1 SAP HANA Oracle: Anfragen Im Test zwischen HANA und Oracles Lösung ist die Lösung aus dem Hause SAPs bei Anfragen an das System im Schnitt 1660% schneller. Im Detail dauerten die Anfragen an das Oracle System im Schnitt 64 Sekunden wohingegen die Anfragen an HANA innerhalb von 4 Sekunden beantwortet wurden. In einigen Fällen, speziell bei Anfragen welche man eine Struktur aufweisen wie man sie im Finanzsektor findet, ist HANA bis zu 5000% schneller als Oracle. 5.2 SAP HANA Oracle: Data Load Beim Laden von Daten steht die Lösung von SAP im Vergleich ebenfalls besser da. Dabei wurden 530 data load jobs, also das Aggregieren von Daten aus einer oder mehreren Quellen welche in unterschiedlichen Formaten vorliegen können und bereitstellen in der eigenen Datenbanklösung, durchgeführt. Im Schnitt war hier HANA 43% schneller als Oracle. 5.3 SAP HANA SAP BWA: Anfragen Als letztes wurde noch ein Vergleich von Antwortzeiten von Anfragen zwischen SAP HANA und SAP BWA (Business Warehouse Accelerator) durchgeführt. Hierbei erzielte HANA eine 64% bessere Leistung mit einer durchschnittlichen Antwortzeit von 15 Sekunden im Vergleich zu BWAs 43,6 Sekunden. 6 Zusammenfassung als Technologie ist der logische Schritt hin zu höherer Leistung in analytischen Applikationen und wird auch in Zukunft immer weiter an Relevanz gewinnen, nicht zuletzt weil das Datenaufkommen mit voranschreiten der Technologie ebenfalls immer stärker wachsen wird. Nicht zuletzt tragen auch die Cloud-Lösungen und das Verlangen nach Big-Data Lösungen in vielen Bereichen dazu bei, das die Suche nach immer leistungsfähigeren System und Technologien vorangetrieben wird, wofür die In-Memory Technologie speziell im Bereich der Datenbanken noch lange Zeit als Lösung dienen wird. 01.01.2015 Marcel Poltermann 7
Anhang A Quellenverzeichnis Literatur Quelle Zugriff 1) http://www.searchenterprisesoftware.de/definition/in-memory- 01.01.2015 21:00 Analytics 2) http://venom630.free.fr/pdf/windows%20nt%20file%20system 01.01.2015 21:00 %20Internals%20-%20A%20Developer%27s%20Guide%20(1997).pdf (Windows NT File System Internals - A Developer's Guide (1997) 3) http://www.elektronik-kompendium.de/sites/com/1312291.htm 01.01.2015 21:00 4) http://de.wikipedia.org/wiki/in-memory-datenbank#nicht-persistenz 01.01.2015 21:00 5) http://gridgain.com/four-myths-of-in-memory-computing/ 01.01.2015 21:00 6) http://sapinsider.wispubs.com/assets/blogs/2013/september/real- 01.01.2015 21:00 HANA-Performance-Test-Benchmarks Anhang B Quellenverzeichnis Bilder Abbildung Quelle Zugriff Abbildung 1 Windows NT File System Internals - A Developer's 01.01.2015 21:00 Guide (1997) Seite 22 Figure 2-1. Local file system Abbildung 2 http://i.technet.microsoft.com/dynimg/ic306536.jpg 01.01.2015 21:00 01.01.2015 Marcel Poltermann IV