Kapitel 7 Physische Datenorganisation. Speicherhierarchie Hintergrundspeicher / RAID B-Bäume Hashing R-Bäume. Register. Cache.

Ähnliche Dokumente
Kapitel 7 Physische Datenorganisation. Speicherhierarchie Hintergrundspeicher / RAID Speicherstrukturen B-Bäume Hashing R-Bäume

Kapitel 7 Physische Datenorganisation. Speicherhierarchie Hintergrundspeicher / RAID B-Bäume Hashing R-Bäume

Physische Datenorganisation

Physische Datenorganisation

Physische Datenorganisation

Datenbanksysteme II: Implementation of Database Systems Storage, Discs, and Raid

! DBMS organisiert die Daten so, dass minimal viele Plattenzugriffe nötig sind.

Kapitel 8: Physischer Datenbankentwurf

Kapitel 6 Anfragebearbeitung

Teil V. Generics und Kollektionen in Java

Physischer Datenbankentwurf: Datenspeicherung

JAVA KURS COLLECTION

Die allerwichtigsten Raid Systeme

Bäume, Suchbäume und Hash-Tabellen

Wegweiser. Gegenstand und Begriffe. Dateien und Verzeichnisse. Implementationsaspekte. Ablauf eines Dateizugriffs. Plattenspeicher

OPERATIONEN AUF EINER DATENBANK

Datenstrukturen in Java

Technische Informatik II Wintersemester 2002/03 Sommersemester Heiko Holtkamp

Datenbanksysteme II Physische Speicherstrukturen (Kapitel 11) Felix Naumann. Datenmodellebene. Logischer Zugriff. Speicherstrukturen

Anfragebearbeitung. Vorlesung: Dr. Matthias Schubert

Alle Metadaten werden in Dateien gehalten

Datenbanksysteme II Klausurvorbereitung Felix Naumann

Dateiorganisation und Zugriffsstrukturen

Datenbanksysteme II: Storage, Discs, and Raid. Ulf Leser

Bedeutung der Metadateien. Alle Metadaten werden in Dateien gehalten. NTFS ist ein Journal-File-System

Betriebssysteme WS 2012/13 Peter Klingebiel, DVZ. Zusammenfassung Kapitel 4 - Datenträger/Dateiverwaltung

B-Bäume I. Algorithmen und Datenstrukturen 220 DATABASE SYSTEMS GROUP

Betriebssysteme K_Kap11C: Diskquota, Raid

Verlässliche Systeme

Fakten statt Bauchgefühl: RAID Mathematik für Admins

Hard & Software Raid

DBS: Administration und Implementierung Klausur

Was machen wir heute? Betriebssysteme Tutorium 12. Organisatorisches. Frage 12.1.a. Programmieraufgaben Vorstellung. Antwort

KAPITEL 2 VERWALTUNG DES HINTERGRUNDSPEICHERS

4.3 Hintergrundspeicher

wichtigstes Betriebsmittel - neben dem Prozessor: Speicher

Grundlagen der Rechnerarchitektur

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Paging. Einfaches Paging. Paging mit virtuellem Speicher

Datenbanksysteme II Physische Speicherstrukturen Felix Naumann

Aufbau Datenbanksysteme

Vorlesung 09: Mengen. Peter Thiemann SS 2010

RAID Systeme. Redundant Array of Independent Disks. Stefan Berntheisel. Stand: Dezember 2003

Basiseinheit Cluster. Rückgrat des gesamten Systems. Basiseinheit Strom. entsprechender Eintrag für

4 LCN VCN LCN Extents werden außerhalb der MFT gespeichert

Inhalt. Datenbanken Vertiefung. Literatur und Quellen. Inhalt. Physische Datenorganisation I. Nikolaus Augsten. Wintersemester 2013/14

Java Einführung Collections

Vorlesung 5: DATENSTRUKTUREN UND ALGORITHMEN

Hardware, Fehlertoleranz, Am Beispiel Dateisysteme

Hauptspeicher- Datenbanksysteme

Hauptspeicher- Datenbanksysteme. Hardware-Entwicklungen Column- versus Row-Store...

Physische Datenorganisation

Kapitel VI. Speicherverwaltung. Speicherverwaltung

Die Sicht eines Sysadmins auf DB systeme

equals und hashcode SortedSet NavigableSet Assoziative Container Programmieren II Dr. Klaus Höppner Hochschule Darmstadt Sommersemester / 32

High-Performance Lists für Java

B+-Baum mit Z-Ordnung. B+-Baum mit Z-Ordnung. Anforderungen. 7.3 Räumliche Zugriffsstrukturen

Java Schulung. Objektorientierte Programmierung in Java Teil V: Die Java Collection Klassen. Prof. Dr. Nikolaus Wulff

STORAGE. Martin Schmidt Berufsschule Obernburg

Hardware & Fehlertoleranz, Beispiel: Dateisysteme

Physische Datenorganisation. Kapitel / 520

Suchen in Listen und Hashtabellen

Definition. Gnutella. Gnutella. Kriterien für P2P-Netzwerke. Gnutella = +

Algorithmen und Datenstrukturen (ESE) Entwurf, Analyse und Umsetzung von Algorithmen (IEMS) WS 2014 / Vorlesung 5, Donnerstag, 20.

Moderne RAID Technologie. Grundlagen technisches Wissen, verständlich erklärt

Datenbanken: Architektur & Komponenten 3-Ebenen-Architektur

Betriebssysteme K_Kap11B: Files, Filesysteme Datenstrukturen

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

Systeme I: Betriebssysteme Kapitel 8 Speicherverwaltung. Maren Bennewitz

6. Formaler Datenbankentwurf 6.1. Rückblick. Datenbanken und Informationssysteme, WS 2012/ Januar 2013 Seite 1

Datenbanksysteme II Indexstrukturen Felix Naumann

Grundlagen der Rechnerarchitektur

Grundlagen der Informatik Generische Klassen

Leistungsanalyse von Rechnersystemen

6-1 A. Schwill Grundlagen der Programmierung II SS 2005

Kapitel 6 Speicherverwaltung Seite 1 zum Teil nach: Silberschatz&Galbin, Operating System Concepts, Addison-Wesley)

IO Performance - Planung Messung, Optimierung. Ulrich Gräf Principal Sales Consultant Oracle Deutschland B.V. und Co. KG

1C02. RAID Performance Grundlagen. Wozu überhaupt über I/O Performance nachdenken?

stattdessen: geräteunabhängiges, abstraktes Format für Speicherung und Transfer von Daten Datei

One of the few resources increasing faster than the speed of computer hardware is the amount of data to be processed. Bin Hu

Cluster-Bildung. VL Datenbanken II 4 107

Informatik II Datenorganisation Datenbanken

RAID. Name: Artur Neumann

Schulinternes Curriculum im Fach Informatik

Kapitel : Andere dynamische Datenstrukturen. Algorithmen und Datenstrukturen WS 2012/13. Prof. Dr. Sándor Fekete

Betriebssysteme (BTS)

Vorlesung ) Einführung

10 Datenträgerverwaltung, RAID

4.4.9 Das Java Collection Framework

Wiederholung: Realisierung von Dateien

Felix Großkreuz Philipps-Universität Marburg Fachbereich 12 Seminar IT-Administration SS2011

Programmiertechnik II

SSD-basiertes Caching einer Festplatte auf Dateisystemebene

Software ubiquitärer Systeme

Kapitel 5 Anfragebearbeitung

RAID Redundant Array of Independent [Inexpensive] Disks

IMPLEMENTIERUNG VON OPERATIONEN AUF RELATIONEN

SSDs als Cache für HDDs

B-Bäume, Hashtabellen, Cloning/Shadowing, Copy-on-Write

Transkript:

Kapitel 7 Physische Datenorganisation Speicherhierarchie Hintergrundspeicher / RAID B-Bäume Hashing R-Bäume 1 Überblick: Speicherhierarchie Register Cache Hauptspeicher Plattenspeicher Archivspeicher A. Kemper / A. Eickler 2 A. Kemper / A. Eickler 1

Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher Zugriffslücke 10 5 sec Archivspeicher A. Kemper / A. Eickler 3 Überblick: Speicherhierarchie 1-10ns Register 10-100ns Cache 100-1000ns Hauptspeicher 10 ms Plattenspeicher Zugriffslücke 10 5 sec Archivspeicher A. Kemper / A. Eickler 4 A. Kemper / A. Eickler 2

Magnetplattenspeicher A. Kemper / A. Eickler 5 A. Kemper / A. Eickler 6 A. Kemper / A. Eickler 3

heutige Zeit A. Kemper / A. Eickler 7 Lesen von Daten von der Platte Seek Time: Arm positionieren 5ms Latenzzeit: ½ Plattenumdrehung (im Durchschnitt) 10000 Umdrehungen / Minute Ca 3ms Transfer von der Platte zum Hauptspeicher 100 Mb /s 15 MB/s A. Kemper / A. Eickler 8 A. Kemper / A. Eickler 4

Random versus Chained IO 1000 Blöcke à 4KB sind zu lesen Random I/O Jedesmal Arm positionieren Jedesmal Latenzzeit 1000 * (5 ms + 3 ms) + Transferzeit von 4 MB > 8000 ms + 300ms 8s Chained IO Einmal positionieren, dann von der Platte kratzen 5 ms + 3ms + Transferzeit von 4 MB 8ms + 300 ms 1/3 s Also ist chained IO ein bis zwei Größenordnungen schneller als random IO in Datenbank-Algorithmen unbedingt beachten! A. Kemper / A. Eickler 9 Disk Arrays RAID-Systeme A. Kemper / A. Eickler 10 A. Kemper / A. Eickler 5

A. Kemper / A. Eickler 11 RAID 0: Striping Datei A B C D A C B D Lastbalancierung wenn alle Blöcke mit gleicher Häufigkeit gelesen/geschrieben werden Doppelte Bandbreite beim sequentiellen Lesen der Datei bestehend aus den Blöcken ABCD... Aber: Datenverlust wird immer wahrscheinlicher, je mehr Platten man verwendet (Stripingbreite = Anzahl der Platten, hier 2) A. Kemper / A. Eickler 12 A. Kemper / A. Eickler 6

RAID 1: Spiegelung (mirroring) A B A B C D C D Datensicherheit: durch Redundanz aller Daten (Engl. mirror) Doppelter Speicherbedarf Lastbalancierung beim Lesen: z.b. kann Block A von der linken oder der rechten Platte gelesen werden Aber beim Schreiben müssen beide Kopien geschrieben werden Kann aber parallel geschehen Dauert also nicht doppelt so lange wie das Schreiben nur eines Blocks A. Kemper / A. Eickler 13 RAID 0+1: Striping und Spiegelung A A B B C C D D Kombiniert RAID 0 und RAID 1 Immer noch doppelter Speicherbedarf Zusätzlich zu RAID 1 erzielt man hierbei auch eine höhere Bandbreite beim Lesen der gesamten Datei ABCD... Wird manchmal auch als RAID 10 bezeichnet A. Kemper / A. Eickler 14 A. Kemper / A. Eickler 7

RAID 2: Striping auf Bit-Ebene Anstatt ganzer Blöcke, wie bei RAID 0 und RAID 0+1, wird das Striping auf Bit- (oder Byte-) Ebene durchgeführt 1010 1101 1011 0110 0011 1100... Datei 111001... 010101... 101110... 011010... Es werden zusätzlich auf einer Platte noch Fehlererkennungsund Korrekturcodes gespeichert In der Praxis nicht eingesetzt, da Platten sowieso schon Fehlererkennungscodes verwalten A. Kemper / A. Eickler 15 RAID 3: Striping auf Bit-Ebene, zusätzliche Platte für Paritätsinfo 1010 1101 1011 0110 0011 1100... Datei Parität 111001... 010101... 101110... 011010... 011000... Das Striping wird auf Bit- (oder Byte-) Ebene durchgeführt Es wird auf einer Platte noch die Parität der anderen Platten gespeichert. Parität = bit-weise xor Dadurch ist der Ausfall einer Platte zu kompensieren Das Lesen eines Blocks erfordert den Zugriff auf alle Platten Verschwendung von Schreib/Leseköpfen Alle marschieren synchron A. Kemper / A. Eickler 16 A. Kemper / A. Eickler 8

RAID 3: Plattenausfall 1010 1101 1011 0110 0011 1100... Datei Parität 111001... 010101... 101110... 011010... 011000... Reparatur 011010... A. Kemper / A. Eickler 17 RAID 4: Striping von Blöcken A E B F C G D H P A-D P E-H Bessere Lastbalancierung als bei RAID 3 Flaschenhals bildet die Paritätsplatte Bei jedem Schreiben muss darauf zugegriffen werden Bei Modifikation von Block A zu A wird die Parität P A-D wie folgt neu berechnet: P A-D := P A-D A A D.h. bei einer Änderung von Block A muss der alte Zustand von A und der alte Paritätsblock gelesen werden und der neue Paritätsblock und der neue Block A geschrieben werden A. Kemper / A. Eickler 18 A. Kemper / A. Eickler 9

RAID 4: Striping von Blöcken 1010 1101 1011 0110 0011 1100... Datei Paritäts block 1010... 1101... 1011... 0110... 1010... Flaschenhals bildet die Paritätsplatte Bei jedem Schreiben muss darauf zugegriffen werden Bei Modifikation von Block A zu A wird die Parität P A-D wie folgt neu berechnet: P A-D := P A-D A A D.h. bei einer Änderung von Block A muss der alte Zustand von A und der alte Paritätsblock gelesen werden und der neue Paritätsblock und der neue Block A geschrieben werden A. Kemper / A. Eickler 19 RAID 5: Striping von Blöcken, Verteilung der Paritätsblöcke A E B F C G D P E-H P A-D H I M J P M-P P I-L N K O L P Bessere Lastbalancierung als bei RAID 4 die Paritätsplatte bildet jetzt keinen Flaschenhals mehr Wird in der Praxis häufig eingesetzt Guter Ausgleich zwischen Platzbedarf und Leistungsfähigkeit A. Kemper / A. Eickler 20 A. Kemper / A. Eickler 10

Parallelität bei Lese/Schreib- Aufträgen A. Kemper / A. Eickler 21 Systempuffer-Verwaltung einlagern verdrängen Hauptspeicher Platte ~ persistente DB A. Kemper / A. Eickler 22 A. Kemper / A. Eickler 11

Ein- und Auslagern von Seiten Systempuffer ist in Seitenrahmen gleicher Größe aufgeteilt Ein Rahmen kann eine Seite aufnehmen Überzählige Seiten werden auf die Platte ausgelagert Hauptspeicher 0 4K 8K 12K 16K 20K 24K 28K Platte(swap device) P123 32K 36K 40K 44K P480 48K 52K 56K 60K Seitenrahmen Seite A. Kemper / A. Eickler 23 Kollektionen in java.util Collection Map Set List HashMap SortedSet TreeSet HashSet ArrayList LinkedList SortedMap TreeMap Iterator Iterator A. Kemper / A. Eickler 24 A. Kemper / A. Eickler 12

B-Bäume Balancierte Mehrwege-Suchbäume Für den Hintergrundspeicher 25 D.. Weitere Daten S.. Suchschlüssel V.. Verweise (SeitenNr) A. Kemper / A. Eickler 26 A. Kemper / A. Eickler 13

A. Kemper / A. Eickler 27 A. Kemper / A. Eickler 28 A. Kemper / A. Eickler 14

Einfügen eines neuen Objekts (Datensatz) in einen B-Baum A. Kemper / A. Eickler 29 Sukzessiver Aufbau eines B-Baums vom Grad k=2 (kleine Spielerei ohne Druck) 7 10 13 19 A. Kemper / A. Eickler 30 A. Kemper / A. Eickler 15

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 4 Speicherblock Nr 4 A. Kemper / A. Eickler 103 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB 8 KB-Blöcke 3 0 Block- Nummer Datei A. Kemper / A. Eickler 104 A. Kemper / A. Eickler 16

Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB 8 KB-Blöcke 3 0 Block- Nummer Datei A. Kemper / A. Eickler 105 Speicherstruktur eines B-Baums auf dem Hintergrundspeicher 0*8KB 1*8KB 2*8KB 3*8KB 4*8KB Block- Nummer 0 8 KB-Blöcke Datei 3 1 1 0 1 0 0 1 1 0 Freispeicher- Verwaltung A. Kemper / A. Eickler 106 A. Kemper / A. Eickler 17

Zusammenspiel: Hintergrundspeicher -- Hauptspeicher Hintergrundspeicher Hauptspeicher- Puffer 4 4 Zugriffslücke 10 5 A. Kemper / A. Eickler 107 B + -Baum Referenzschlüssel Suchschlüssel A. Kemper / A. Eickler 108 A. Kemper / A. Eickler 18

A. Kemper / A. Eickler 109 A. Kemper / A. Eickler 110 A. Kemper / A. Eickler 19

Mehrere Indexe auf denselben Objekten B-Baum Mit (PersNr, Daten) Einträgen B-Baum Mit (Alter,???) Einträgen Name, Alter, Gehalt... Alter, PersNr A. Kemper / A. Eickler 111 Mehrere Indexe auf denselben Objekten Wer ist 20? B-Baum Mit (PersNr, Daten) Einträgen B-Baum Mit (Alter,???) Einträgen Name, Alter, Gehalt... 20, 007 Alter, PersNr A. Kemper / A. Eickler 112 A. Kemper / A. Eickler 20

Mehrere Indexe auf denselben Objekten Wer ist 20? B-Baum Mit (PersNr, Daten) Einträgen B-Baum Mit (Alter,???) Einträgen 007,Bond,20,... 20, 007 Name, Alter, Gehalt... Alter, PersNr A. Kemper / A. Eickler 113 Eine andere Möglichkeit (B*-Baum) Referenzierung über Speicheradressen PersNr Alter 007,... 20,... 007, Bond, 20,... A. Kemper / A. Eickler 114 A. Kemper / A. Eickler 21

Realisierungstechnik für Hintergrundspeicher-Adressen Seiten / Blöcke (ca 8 KB) A. Kemper / A. Eickler 115 A. Kemper / A. Eickler 116 A. Kemper / A. Eickler 22

Verschiebung innerhalb einer Seite A. Kemper / A. Eickler 117 Verschiebung von einer Seite auf eine andere Forward A. Kemper / A. Eickler 118 A. Kemper / A. Eickler 23

Verschiebung von einer Seite auf eine andere Bei der nächsten Verschiebung wird der Forward auf Seite 4711 geändert (kein Forward auf Seite 4812) A. Kemper / A. Eickler 119 Kollektionen in java.util Collection Map Set List HashMap SortedSet TreeSet HashSet ArrayList LinkedList SortedMap TreeMap Iterator Iterator A. Kemper / A. Eickler 120 A. Kemper / A. Eickler 24

Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R 2 3 44 5 76 90 13 17 42 88 R S Nested Loop: O(N 2 ) Sortieren: O(N log N) Partitionieren und Hashing S 44 17 97 4 6 27 2 13 3 A. Kemper / A. Eickler 121 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R 2 3 44 5 76 90 13 17 42 88 Mod 3 R 3 90 42 76 13 88 2 44 5 17 R S S 44 17 97 4 6 27 2 13 3 A. Kemper / A. Eickler 122 A. Kemper / A. Eickler 25

Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R 2 3 44 5 76 90 13 17 42 88 Mod 3 R 3 90 42 76 13 88 2 44 5 17 R S S 6 27 3 97 4 13 44 17 2 Mod 3 S 44 17 97 4 6 27 2 13 3 A. Kemper / A. Eickler 123 Mengendurchschnitt mit einem Hash/Partitionierungs-Algorithmus R 2 3 44 5 76 90 13 17 42 88 Mod 3 R 3 90 42 76 13 88 2 44 5 17 R S S 6 27 3 97 4 13 44 17 2 Mod 3 S 44 17 97 4 6 27 2 13 3 A. Kemper / A. Eickler 124 A. Kemper / A. Eickler 26

Statisches Hashing A. Kemper / A. Eickler 125 Statische Hashtabellen À priori Allokation des Speichers Nachträgliche Vergrößerung der Hashtabelle ist teuer Hashfunktion h(...) =... mod N Rehashing der Einträge h(...) =... mod M In Datenbankanwendungen viele GB Erweiterbares Hashing Zusätzliche Indirektion über ein Directory Ein zusätzlicher Zugriff auf ein Directory, das den Zeiger (Verweis, BlockNr) des Hash-Bucket enthält Dynamisches Wachsen (und Schrumpfen) ist möglich Der Zugriff auf das Directory erfolgt über einen binären Hashcode A. Kemper / A. Eickler 126 A. Kemper / A. Eickler 27

A. Kemper / A. Eickler 127 A. Kemper / A. Eickler 128 A. Kemper / A. Eickler 28

Mehrdimensionale Datenstrukturen Wertbasierter Zugriff auf der Grundlage mehrerer Attribute, dies einzeln oder in beliebigen Kombinationen. Typische Anforderungen aus CAD, VLSI-Entwurf, Kartographie,... Anfragen decken den Bereich ab zwischen mehrdimensionalem Punktzugriff (EMQ) und mehrdimensionalen Bereichsanfragen (RQ) Lösung mit eindimensionalen Indexen erfordert konjunktive Zerlegung der Anfrage in Einattributanfragen und Schnittmengenbildung bedingt hohe Speicherredundanz Problemstellung: Mehrdimensionale Nachbarschaftsverhältnisse A. Kemper / A. Eickler 129 Grundlagen mehrdimensionaler Datenstrukturen Wertebereiche D 0,..., D k-1 : alle D i sind endlich, linear geordnet und besitzen kleinstes (- i ) und größtes ( i ) Element Datenraum D = D 0... D k-1 k-dimensionaler Schlüssel entspricht Punkt im Datenraum p D A. Kemper / A. Eickler 130 A. Kemper / A. Eickler 29

Charakterisierung mehrdimensionaler Datenstrukturen Mehrdimensionale Zugriffsstrukturen können gemäß der Art der Aufteilung des Datenraums in Gebiete charakterisiert werden: 1. nur atomare Gebiete (beschreibbar durch ein Rechteck) 2. vollständig (die Vereinigung aller Gebiete ergibt den gesamten Datenraum) 3. disjunkt (die Gebiete überlappen nicht) Grid-File (Gitter-Datei): atomar, vollständig, disjunkt A. Kemper / A. Eickler 131 R-Baum: Urvater der baum-strukturierten mehrdimensionalen Zugriffsstrukturen [18,60] [60,120] 60 120K Bond 20 80K Mini 43 70K Mickey 18 60K Duck 60 Bond 40 Mickey Alter 20 Duck Mini 40K 60K 80K 100K 120K A. Kemper / A. Eickler Gehalt 132 A. Kemper / A. Eickler 30

Nächste Phase in der Entstehungsgeschichte des R-Baums [18,43] [40,60] [60,80] [100,120] 20 80K Mini 43 70K Mickey 18 60K Duck 60 120K Bond 40 100K Speedy Bert (noch nicht eingefügt) Mickey Bond Alter Duck Mini Speedy Gehalt A. Kemper / A. Eickler 133 Gute versus schlechte Partitionierung gute Partitionierung schlechte Partitionierung Mickey Bond Mickey Bond Alter Duck Mini Speedy Alter Duck Mini Speedy Gehalt Gehalt A. Kemper / A. Eickler 134 A. Kemper / A. Eickler 31

Datenraum Bert Lucie Mickey Bond Alter Duck Ernie Speedy Mini Urmel Bill Gehalt A. Kemper / A. Eickler 135 A. Kemper / A. Eickler 32