KAPITEL 2 VERWALTUNG DES HINTERGRUNDSPEICHERS h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 1 Verwaltung des Hintergrundspeichers Inhalte des Kapitels • Speicher- und Sicherungsmedien • Struktur des Hintergrundspeichers • Pufferverwaltung im Detail • Umsetzung in konkreten DBMS Lernziele • Verstehen der Konzepte zur physischen Speicherung der Datenbankdaten • Kennenlernen der wichtigsten Parameter zur Beeinflussung der physischen Ablage der Daten und zur Pufferverwaltung h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 2 Einordnung in 5-Schichten-Architektur Mengenorientierte Schnittstelle Datensystem Satzorientierte Schnittstelle Zugriffssystem Interne Satzschnittstelle Speichersystem Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Geräteschnittstelle Externspeicher h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 3 Speicher- und Sicherungsmedien • Primärspeicher – Register, Cache, Arbeitsspeicher – sehr schnell, teuer, flüchtig, klein – Zugriffsgranularität: fein (i.a. jedes Byte adressierbar) • Sekundärspeicher – meist Plattenspeicher, nicht-flüchtig (persistent) – langsam, preiswert, groß – Zugriffsgranularität: Blöcke (oft 512 Bytes) – Zugriffslücke: Faktor 105 langsamerer Zugriff • Tertiärspeicher – zur langfristigen Datensicherung (Backup und Archivierung) – i.a. optische Platten und Magnetbänder (meist Wechselmedium) – Sehr langsam, sehr preiswert, sehr groß – Zugriffslücke: extrem groß h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 4 Magnetplattenspeicher: Aufbau • • • • • • eine oder mehrere rotierende Platten für jede Plattenoberfläche ein Schreib-/Lesekopf jede Plattenoberfläche ist eingeteilt in Spuren die Spuren sind formatiert als Sektoren fester Größe (Slots) Sektoren sind die kleinste Schreib-/Leseeinheit auf einer Platte Einteilung in Blöcke – Block Adresse: (Zylindernummer, Spurnummer, Sektornummer) Quelle: Wikimedia h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 5 Magnetplattenspeicher: Zugriffszeiten – 1(2) • Wichtige Parameter für die Geschwindigkeit des Zugriffs tseek - Positionierung des Zugriffsarms (seek time) trotate - Umdrehungswartezeit (Latenzzeit) ttransfer - Übertragungszeit von der Platte in den Hauptspeicher • Vereinfachtes Modell für die mittlere Zugriffszeit t = tseek + 1/2*trotate + ttransfer = tseek + 1/2*trotate + m/u mit u - Übertragungsrate von der Platte in den Hauptspeicher (MB/s) m - zu übertragende Datenmenge • Typische Gerätewerte: 1970 2005 tseek 30 ms 12 ms 5 ms trotate 18 ms 14 ms 4 ms 1 MB/s 4 MB/s 50 MB/s u h_da Prof. Dr. Uta Störl 1990 Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 6 Magnetplattenspeicher: Zugriffszeiten – 2(2) • Wie lange dauert der sequentielle Zugriff (chained IO) bzw. der wahlfreie Zugriff (random IO) auf 1000 Blöcken a 4 KB (~ 4 MB)? 1970 sequentiell wahlfrei Verhältnis 2005 Verbesserung 4.039 ms 87 ms ~ 98% 43.000 ms 7.080 ms ~ 84% 1:10 1:80 Ergebnis: • Sequentieller Zugriff ist bei großen Datenmengen n-mal schneller als wahlfreier Zugriff auf die gleichen Daten. • Da die Transferraten schneller wachsen als die Positionierungs- und Umdrehungszeiten, wird das Verhältnis wahlfreier zu sequentieller Zugriff immer schlechter! Muss bei der Implementierung (und der Administration) von Datenbanksystemen unbedingt beachtet werden! h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 7 Solid State Disks (SSDs) • Vorteile – enthalten keine beweglichen Teile Performance! • Nachteile – Preis (noch) Quelle: Intel – Speicherzellen können nur begrenzt oft beschrieben werden (30.000 – 100.000) – schlecht für Datenbankanwendungen SSDs sind mittelfristig der Sekundärspeicher der Zukunft! Verändern Paradigma nach dem DB-Algorithmen geschrieben wurden • Einsatz heute – häufig benötigte bzw. für performance-kritische Operationen benötigte Teile der Datenbank – z.B. Teradata (cold vs. hot data) – als zusätzlicher Speicher in der Cache-Hierarchie (siehe nächster Abschnitt) – z.B. Oracle Exadata h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 8 Einordnung in 5-Schichten-Architektur Mengenorientierte Schnittstelle Datensystem Satzorientierte Schnittstelle Zugriffssystem Interne Satzschnittstelle Speichersystem Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Geräteschnittstelle Externspeicher h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 9 Geräte- und Dateischnittstelle • Geräteschnittstelle – Vorgegeben durch die verwendete Hardware – Durch die Abbildungsschicht der Speicherungsstrukturen wird eine Dateischnittstelle erzeugt, auf der von Gerätecharakteristika wie Speichertyp, Zylinder- und Spuranzahl, Spurlänge etc. abstrahiert wird. • Dateischnittstelle – Strukturierung des Adressraumes in physische Blöcke (Abstraktion vom Typ des Sicherungsmediums) – Operationen zum Lesen und Schreiben von Blöcken h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 10 Betriebssystemdateien • Betriebssystem fasst eine Menge von Blöcken zu einer BetriebssystemDatei zusammen • Varianten der Nutzung von Betriebssystemdateien – jede Relation oder jeder Zugriffspfad in genau einer BetriebssystemDatei – ein oder mehrere Betriebssystem-Dateien, DBMS verwaltet Relationen und Zugriffspfade selbst innerhalb dieser Dateien – DBMS steuert selbst Magnetplatte an und arbeitet mit den Blöcken in ihrer Ursprungsform (raw device) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 11 Blöcke und Seiten • Zuordnung der physischen Blöcke zu Seiten • meist mit festen Faktoren: 2n Blöcke einer Spur auf eine Seite (feste) Seitengröße zwischen 512 Bytes und 16 KB – Typisch: 4KB – Trend: größere Seiten, z.B. 1-2 MB bei Data Warehousing • höhere Schichten des DBMS adressieren über Seitennummer • im folgenden vereinfachend: 1 Block pro Seite (Seitengröße 512 Bytes) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 12 Abbildung der Datenstrukturen • Abbildung der konzeptuellen Ebene auf interne Datenstrukturen Konz. Ebene Relationen Tupel Attributwerte Interne Ebene → Log. Dateien → Datensätze → Felder Dateisystem/Platte → Phys. Dateien → Seiten/Blöcke → Bytes • Varianten der Abbildungen – Beispiel 1: jede Relation in je einer logischen Datei, diese insgesamt in einer einzigen physischen Datei – Beispiel 2: Cluster-Speicherung – mehrere Relationen in einer logischen Datei h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 13 Typische Form der Speicherung – 1(2) Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 14 Typische Form der Speicherung – 2(2) Quelle: Saake/Heuer/Sattler:2005 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 15 Datenbankstruktur: Oracle • • Jede Tabelle liegt in genau einem Segment (außer bei geclusterten oder partitionierten Tabellen). Jeder Index liegt in genau einem Segment. Quelle: Oracle Database Concepts 10g:2004 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 16 Oracle: Datendefinition • Beispiel für Oracle-Datendefinition: create table tabelle ( ...) storage ( initial 10MB, next 2MB, minextents 1, maxextents 20, pctincrease 0 ) tablespace USER_TBLSPACE; • (Optionale) Storage Parameter für eine Tabelle: – initial, next: Größe des ersten bzw. der weiteren Extents (default für initial und next: 5 Blöcke) – minextents, maxextents: Anzahl der mind. bzw. max. zu allokierenden Extents – pctincrease: prozentuale Vergrößerung der nachfolgenden Extents (0: gleich große Extents) – tablespace: Zuordnung zum Tablespace • Parameter können (teilweise) später mit alter table verändert werden h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 17 Datenbankstruktur: IBM DB2 Datenbank Tablespace A Tabelle 1 Tablespace B Tabelle 2 Tabelle 3 Index 1 Ein Tablespace wird gleichmäßig über alle Container mit Daten gefüllt (Parameter Extentsize als Schwellwert) Container sind entweder vom Typ • SMS (System Managed Space) oder • DMS (Database Managed Space) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Index 2 Container 1 Container 2 Container 3 Kapitel 2: Verwaltung des Hintergrundspeichers 18 IBM DB2: Tablespaces • Jede DB2-Datenbank muss mindestens 3 Tablespaces (Tabellenbereiche) enthalten – einen Katalog-Tablespace • default: SYSCATSPACE – ein oder mehrere Tablespaces für persistente Nutzerdaten • default: USERSPACE1 – einen oder mehrere temporäre System-Tablespaces • default: TEMPSPACE1 • werden beim Erzeugen einer Datenbank automatisch angelegt, können aber auch explizit spezifiziert werden CREATE DB name [ CATALOG TABLESPACE (…) ] [ USER TABLESPACE (…) ] [ TEMPORARY TABLESPACE (…) ] h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 19 Pufferverwaltung im Detail Mengenorientierte Schnittstelle Datensystem Satzorientierte Schnittstelle Zugriffssystem Interne Satzschnittstelle Speichersystem Systempufferschnittstelle Pufferverwaltung Dateischnittstelle Betriebssystem Geräteschnittstelle Externspeicher h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 20 Pufferverwaltung: Motivation Größenordnung Zugriffszeiten Beispiel: 100 Seiten lesen • • Hauptspeicher: 100 x 100 ns = 10.000 ns = 0,01 ms Plattenspeicher: 100 x 10 ms = 1.000 ms = 1 s Zugriffslücke: 105 1-10 ns Register 10-100 ns Cache 100-1000 ns Hauptspeicher 10 ms Plattenspeicher 100 ms - 1 sec Archivspeicher Quelle: Kemper:2004 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 21 Pufferverwaltung: Prinzip Datenbank auf dem Hintergrundspeicher Hauptspeicher DB-Puffer B‘ C‘ A‘ D D Auslagerung B A‘ Einlagerung ... E‘ F G E‘ F • Puffer: ausgezeichneter Bereich des Hauptspeichers • in Pufferrahmen gegliedert, jeder Pufferrahmen kann eine Seite der Platte aufnehmen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 22 Aufgaben der Pufferverwaltung • Pufferverwaltung muss angeforderte Seiten im Puffer suchen effiziente Suchverfahren • parallele Datenbanktransaktionen: geschickte Speicherzuteilung im Puffer • Puffer gefüllt: adäquate Seitenersetzungsstrategien – Speichersystem fordert Seite E an, die nicht im Puffer vorhanden ist – Sämtliche Pufferrahmen sind belegt vor dem Laden (Einlagern) von E Pufferrahmen freimachen: • nach den im folgenden diskutierten Strategien Seite A aussuchen, die wieder ausgelagert wird • ist Seite A seit Einlagerung in den Puffer verändert worden, so wird sie nun auf Platte zurückgeschrieben • ist Seite A seit Einlagerung in den Puffer nur gelesen worden, so kann sie überschrieben werden (verdrängt) – Einlagern von Seite E in den Pufferrahmen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 23 Seitenersetzung: Verfahren Frage: Welche Seite sollte ersetzt werden, wenn Platz im Puffer benötigt wird? • optimale Strategie (OPT): Welche Seite hat maximale Distanz zu ihrem nächsten Gebrauch? (nicht realisierbar, zukünftiges Referenzverhalten nicht vorhersehbar) • Zufallsstrategie (RANDOM): jeder Seite gleiche Wiederbenutzungswahrscheinlichkeit zuordnen • Gute, realisierbare Verfahren: nutzen vergangenes Referenz-verhalten auf Seiten, um Erwartungswerte für Wiederbenutzung schätzen zu können – besser als Zufallsstrategie – Annäherung an optimale Strategie h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 24 Merkmale gängiger Strategien • Alter der Seite im Puffer: – Alter einer Seite nach Einlagerung (die globale Strategie (G)) – Alter einer Seite nach dem letztem Referenzzeitpunkt (die Strategie des jüngsten Verhaltens (J)) – Alter einer Seite wird nicht berücksichtigt (–) • Anzahl der Referenzen auf Seite im Puffer: – Anzahl aller Referenzen auf eine Seite (die globale Strategie (G)) – Anzahl nur der letzten Referenzen auf eine Seite (die Strategie des jüngsten Verhaltens (J)) – Anzahl der Referenzen wird nicht berücksichtigt (–) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 25 Klassifikation gängiger Strategien Verfahren Prinzip Alter Anzahl FIFO älteste Seite ersetzen G – LFU (least frequently used) Seite mit geringster Häufigkeit ersetzen – G LRU (least recently used) Seite ersetzen, die am längsten nicht referenziert wurde J J CLOCK • in der Literatur existieren eine Reihe von Weiterentwicklungen und Optimierungen der obigen Verfahren (LRU-k, GCLOCK, DGCLOCK) h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 26 LRU: Least Recently Used • Idee: Seite im Puffer ersetzen, die am längsten nicht mehr referenziert wurde • Implementierung: LRU-Stack 1 27 1 27 1 12 12 27 1 27 27 12 1 8 19 8 27 12 1 1 verdrängen t h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 27 CLOCK • LRU-Verhalten durch einfachere Implementierung • Seite mit Benutzt-Bit; bei Referenzierung auf „1“ setzen • bei Seitenfehler zyklische Suche: – erste Seite mit „0“ verdrängen – sonst Setzen auf „0“ • Verbesserung (GCLOCK): Benutzt-Bit durch Referenzzähler ersetzen; Dekrementierung bei Suche h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 28 Pufferverwaltung in kommerziellen DBMS • Oracle – LRU (Liste mir LRU- bzw. MRU-Ende) – Spezialbehandlung für full table scan: Einordnung der benutzen Seiten am LRU-Ende – mehrere Puffer möglich (KEEP/RECYCLE/LARGE) • IBM DB2 – LRU-Strategie – mehrere Puffer möglich (bufferpools) • Microsoft SQL Server – abgewandelte LRU-Strategie mit CLOCK-Algorithmus • Generell: die meisten DBMS bieten die Möglichkeit, für Spezialfälle direkt in die Pufferverwaltung einzugreifen, z.B. – Ausschreiben aller modifizierten Seiten – dauerhafte Fixierung einzelner Seiten im Puffer h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 29 Pufferverwaltung in kommerziellen DBMS • weiterer wichtiger Einflussfaktor: Puffergröße • Indikator: Trefferrate (buffer hit ratio) buffer hit ratio = Anz. log. Zugriffe − Anz. phys. Zugriffe Anz. log. Zugriffe • Die buffer hit ratio kann in den meisten Systemen angezeigt bzw. aus entsprechenden Statistiken berechnet werden. ggf. Anpassung der Puffergröße • Ideal: Trefferrate > 90% (d.h. buffer hit ratio > 0.9) bei „typischen“ LastSzenarien h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 30 Anwendungsbeispiel • SAP R/3 – unterstützte DBMS u.a. Oracle, IBM DB2, Microsoft SQL Server, Informix, MaxDB • Datenbankmodell SAP ERP – 67.000 Tabellen mit 700.000 Spalten – 10.000 Views – 13.000 Indexe • Initiale Größe einer SAP-Datenbank – 100.000.000 Tupel – 57 GB foot print • Typische Pufferparameter – buffer hit ratio: 98% – 70% reads (davon 80% primary key) und 30% writes Quelle: R. Munz (SAP AG): Datenmanagement für SAP Applikationen. Vortrag BTW 2007, März 2007 h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 31 Self-tuning Database Systems • Generelle Beobachtung in der IT i.a. und für DBS im Besonderen: – sehr große und komplexe Systeme – riesige Datenbestände – Heterogenität der Systeme Wartung und Administration sehr aufwändig und teuer Vision: Autonomic Computing [..] Computer systems that can regulate themselves much in the same way as our autonomic nervous system regulates and protects our bodies [..] Paul Horn (Vice President IBM Research): Autonomic Computing Manifesto, Harvard, March 2001 self-monitoring / self-tuning / self-protecting / self-healing .. self-* • Vision für DBS: Self-tuning Database Systems – viele wissenschaftliche Arbeiten (auch aus den Research Labs von IBM und Microsoft) im letzten Jahrzehnt – inzwischen erste(!) Ansätze in einigen(!) Produkten h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 32 Self-tuning Database Systems Aufgaben beim Betrieb eines Datenbanksystems • Anlegen der Datenbank – Physisches Design – Indexe anlegen • Aufrechterhaltung des laufenden Betriebs – Storage Management – Backup und Recovery – Reaktion auf Fehler / Probleme – … • Performance-Optimierung – Diagnose von Performance-Problemen Index Reorganisation Optimierung der Buffer Hit Ratio Optimierung von Anfragen – … h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Ansatzpunkte für Self-tuning? Kapitel 2: Verwaltung des Hintergrundspeichers 33 Self-tuning Database Systems Automatisiertes Memory Management • Motivation: DBMS verwalten eigenen Pufferbereich (der selbst wieder aus einer Vielzahl von Puffern besteht) • Beispiel: Puffer-Architektur von DB2: • Herausforderungen – Begrenzte Ressourcen – Dynamische Laständerungen (z.B. Batch-Verarbeitung nachts) Quelle: http://www.ibm.com/developerworks/data/library/techarticle/dm-0709saraswatipura/ h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 34 Self-tuning Database Systems Automatisiertes Memory Management • DB2 9: Self tuning memory management (STMM) • Ähnliche Ansätze im MS SQL Server Quelle: http://www.ibm.com/developerworks/data/library/techarticle/dm-0709saraswatipura/ h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 35 Zusammenfassung • Speicherhierarchie und Zugriffslücke • Hintergrundspeicher: Blockmodell • Pufferverwaltung: Seitenersetzungsstrategien • Puffergröße: wichtiger Faktor für Performance h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 36 Architektur von Datenbanksystemen Architektur von Datenbanksystemen Verwaltung des Hintergrundspeichers • Dateiorganisation und Zugriffsstrukturen • Basisalgorithmen für Datenbank-Operationen • Anfrageoptimierung • Transaktionsverwaltung und Recovery • Verteilte Datenbankarchitekturen h_da Prof. Dr. Uta Störl Architektur von DBMS WS 2015/16 Kapitel 2: Verwaltung des Hintergrundspeichers 37