Datenbanken Prof. Dr. Ralf Möller Universität zu Lübeck Institut für Informationssysteme Karsten Martiny (Übungen) Architektur eines DBMS Architecture of a DBMS / Course Outline Anwendungen Applications Webformulare Web Forms SQL-Schnittstelle SQL Interface Operator-Evaluierer Operator Evaluator Optimierer Optimizer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Puffer-Verwalter Buffer Manager WiederRecovery herstellungsManager Verwalter this course Parser Parser dieser Teil des Kurses Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Verwalter für externen Speicher Disk Space Manager DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 2 Danksagung • Diese Vorlesung ist inspiriert von den Präsentationen zu dem Kurs: „Architecture and Implementation of Database Systems“ von Jens Teubner an der ETH Zürich • Graphiken wurden mit Zustimmung des Autors aus diesem Kurs übernommen 3 Speicher: Platten und Dateien Architecture of a DBMS / Course Outline Anwendungen Applications Webformulare Web Forms SQL-Schnittstelle SQL Interface Operator-Evaluierer Operator Evaluator Optimierer Optimizer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Puffer-Verwalter Buffer Manager WiederRecovery herstellungsManager Verwalter this course Parser Parser dieser Teil des Kurses Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Verwalter für externen Speicher Disk Space Manager DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 4 Speicherhierarchie • • • • • • CPU (mit Registern) Cache-Speicher Hauptspeicher Flash-Speicher Festplatte Bandautomat Kapazität Latenz Bytes Kilo-/Mega-Bytes Giga-Bytes Giga/Tera-Bytes Tera-Bytes Peta-Bytes < 1 ns < 10 ns 20-100 ns 30-250 µs 3-10 ms variierend • Zur CPU: Schnell aber klein • Zur Peripherie: Langsam aber groß • Cache-Speicher zur Verringerung der Latenz 5 Magnetische Platten / Festplatten Spur track track block Block block sector Sektor sector rotation Rotation rotation arm Arm arm platter Magnetscheibe platter heads Köpfe heads Photo: http://www.metallurgy.utah.edu/ Schrittmotor positioniert Armearray auf steppermotor motor positions AAstepper positions anan array of of bestimmte Spur disk headsonon the requested track. disk heads the requested track. • Platters Magnetscheiben rotieren ständig I (disks) steadily rotate. I Platters (disks) steadily rotate. • Disks Organisation in Blöcke I aremanaged managed blocks: system I Disks are in in blocks: thethe system • reads/writes Transfer erfolgt blockweise (lesend reads/writes data one block a time. data one block at aattime. und schreibend) I • I Fall2008 2008 Fall Systems Group — Department of Computer Science ETH Zürich Systems Group — Department of Computer Science — ETH— Zürich Photo: http://www.metallurgy.utah.edu/ Magnetic Disks Magnetic Disks 10 10 6 Zugriffszeit Konstruktion der Platten hat Einflüsse auf Zugriffszeit (lesend und schreibend) auf einen Block 1. Bewegung der Arme auf die gewünschte Spur (Suchzeit ts) 2. Wartezeit auf gewünschten Block bis er sich unter dem Arm befindet (Rotationsverzögerung tr) 3. Lesezeit bzw. Schreibezeit (Transferzeit ttr) Zugriffszeit: t = ts + tr + ttr 7 Hitachi Travelstar 7K200 (für Laptops) • • • • • 4 Köpfe, 2 Magnetplatten, 512 Bytes/Sektor, Kapazität: 200 GB Rotationsgeschwindigkeit: 7200 rpm Mittelere Suchzeit: 10 ms Transferrate: ca. 50 MB/s Wie groß ist die Zugriffszeit auf einen Block von 8 KB? 8 Sequentieller vs. Wahlfreier Zugriff Beispiel: Lese 1000 Blöcke von je 8 KB • Wahlfreier Zugriff: – trnd = 1000 ∙ 14.33 ms • Sequentieller Zugriff: – Travelstar 7k200 hat 63 Sektoren pro Spur, mit einer Track-to-Track-Suchzeit ts,track-to-track von 1 ms – Ein Block mit 8 KB benötigt 16 Sektoren – tseq = ts + tr + 1000 ∙ ttr + 1000∙16/63 ∙ ts,track-to-track = 10 ms + 4.17 ms + 160 ms + 254 ms ≈ 428 ms Einsicht: Sequentieller Zugriff viel schneller als wahlfreier Zugriff: Vermeide wahlfreie I/O wenn möglich Beobachtung: Wenn 428 ms / 14330 ms = 3% einer 8MB Datei benötigt wird, kann man gleich die ganze Datei lesen 9 erformance Tricks Tricks zur Performanzsteigerung System builders play a number of tricks to improve performance. (track skewing) track Spurverschiebung skewing Verschiebe 0 einer Spur, Align sector 0Sektor of each trackjeden to avoid so dass delay Rotationsverzögerung rotational during sequential bei sequentiellem Abgriff minimiert wird scans. Anfrageplanung request scheduling (request scheduling) Falls mehrere Blockanfragen werden müssen, If multiple requests have to bebefriedigt served, choose the one that wählethe die smallest Anfrage, die diemovement kleineste Armbewegung bedarf requires arm (SPTF: shortest (SPTF: shortest positioning time first) positioning time first). Einteilung in unterschiedliche Zonen (zoning) zoning Mehr Sektoren in den längeren äußeren Spuren Outer tracks are longer than the inner ones. Therefore, unterbringen divide outer tracks into more sectors than inners. 10 Verbesserung der Festplattentechnologie Latenz der Platten über die letzten 10 Jahre nur marginal verbessert (≈ 10% pro Jahr) Aber: – Durchsatz (Transferraten) um ≈ 50% pro Jahr verbessert – Kapazität der Festplatten um ≈ 50% pro Jahr verbessert Daher: – Kosten für wahlfreien Zugriff über die Zeit hinweg relativ gesehen immer bedeutsamer 11 Wege zur Verbesserung der I/O-Performanz Latenzproblem kaum zu vermeiden Aber: – Durchsatz kann recht leicht gesteigert werden durch Ausnutzung von Parallelität – Idee: Verwende mehrere Platten und greife parallel auf Daten zu TPC-C: Ein Industrie-Laufzeittest für OLTP (V5.11) Kennzeichen des im Jahre 2013 besten Systems (Oracle 11g auf SPARC T5-8 Server): • Server-CPU: SPARC T5 3,6 GHz, #Prozessoren: 8, #Kerne (total): 128 • Client-CPUs: Intel Xeon E5-2690 2,9 GHz, #Clients: 8, #Proz. 32, #Kerne: 256 • In der Summe 8,5 Mio Transaktionen pro Minute • Kosten: $4.663.073 USD, mit $0,55 USD/tpmC http://www.tpc.org/tpcc/results/tpcc_perf_results.asp 12 Spiegelung von Festplatteninhalten Disk Mirroring I• Replicate data onto von multiple disks auf mehrere Platten Replizierung Daten 1 2 3 4 5 6 7 8 9 ··· 1 2 3 4 5 6 7 8 9 ··· 1 2 3 4 5 6 7 8 9 ··· • I/O-Parallelität nur für Lesezugriffe I I/O parallelism only for reads. • Erhöhte Fehlertoleranz (überlebt Plattenfehler) I Improved failure tolerance (can survive one disk failure). I• This Alsis RAID1 bekannt ohne Parität) also known as RAID 1(Spiegelung (mirroring without parity). (RAID: Redundant Array of Array Inexpensive Disks) (RAID: Redundant of Inexpensive Disks) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 17 13 Speicherung mit Streifenbildung Disk Striping • IVerteilung derover Daten Distribute data disks auf mehrere Platten 1 2 3 4 5 6 7 8 9 ··· 1 4 7 ··· 2 5 8 ··· 3 6 9 ··· • Volle I/O-Parallelität I Full I/O parallelism. • IHohe Fehlerrate (hier: dreimal höheres Ausfallrisiko) High failure risk (here: 3 times risk of single disk failure)! Also known as RAIDbekannt 0 (striping (Streifenbildung without parity). • IAuch als RAID-0 ohne Parität) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 18 14 Streifenbildung mit Parität Disk Striping with Parity • Verteile Daten und Paritätsinformation I Distribute data and parity information over disks. über Platten 1 2 3 4 5 6 7 8 9 ··· 1 3 5/6 7 · · · 2 3/4 5 8 · · · 1/2 4 6 7/8 · · · • Hohe I/O-Parallelität I High I/O parallelism. • Fehlertoleranz: Eine ohne I Fault tolerance: one diskPlatte can fail kann withoutausfallen, data loss (two disks dass with dual parity/RAID 6). Daten verloren gehen I Also known as RAID 5 (striping with distributed parity). • RAID-5 (Streifenbildung mit verteilter Parität) Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 19 15 Solid-State Disks als Alternative zur Festplatte Anpassung von Datenbanken auf Geräteeigenschaften ist immer noch Forschungsgegenstand Quelle: Wikipedia Solid-State Disk 16 Netzwerk-Speicher ist kein Flaschenhals • Durchsatz Festplatte (SSD): >500 MB/s (Serial ATA) • SDRAM: 50 Gbit/s (Latenz: ∼ ns) • Ethernet – 100-Gbit/s heute (Latenz: ∼ µs) – 400 Gbit/s erwartet in 2017 Warum also nicht Datenbank-Speicher über das Netzwerk referenzieren? 17 Speichernetzwerk (Storage Area Network, SAN) • Block-basierter Netzwerkzugriff auf Speicher – Als logische Platten betrachtet (Suche Block 4711 von Disk 42) – Nicht wie bei NFS (Network File System) • SAN-Speichergeräte abstrahieren von RAID oder physikalischen Platten und zeigen sich dem DBMS als logische Platten – Hardwarebeschleunigung und einfachere Verwaltung • Üblicherweise lokale Netzwerke mit multiplen Servern und Speicherressourcen – Bessere Fehlertoleranz und erhöhte Flexibilität 18 Cloud-Speicher • Cluster von vielen Standard-PCs (z.B. Google, Amazon) – Systemkosten vs. Zuverlässigkeit und Performanz – Verwendung massiver Replikation von Datenspeichern • CPU-Zyklen und Disk-Kapazität als Service – Amazons „Elastic Compute Cloud (EC2)“ • Kosten pro Stunde <10 Cent – Amazons „Simple Storage System (S3)“ • „Unendlicher“ Speicher für Objekte in einer Größe zwischen 1 Byte und 5 GB mit Key-Value-Struktur – Latenz: 100 ms bis 1s • Datenbank auf Basis von S3 entwickelt in 2008 M. Brantner, D. Florescu, D. Graf, D. Kossmann, T. Kraska, Building a database on S3, Proceedings of the 2008 ACM SIGMOD International Conference on Management of Data (SIGMOD '08), S. 251-264, 2008 19 Architektur eines DBMS Architecture of a DBMS / Course Outline Anwendungen Applications Webformulare Web Forms SQL-Schnittstelle SQL Interface Operator-Evaluierer Operator Evaluator Optimierer Optimizer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Puffer-Verwalter Buffer Manager WiederRecovery herstellungsManager Verwalter this course Parser Parser dieser Teil des Kurses Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Verwalter für externen Speicher Disk Space Manager DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 20 Verwaltung des externen Speichers • Abstraktion von technischen Details der Speichermedien • Konzepte der Seite (page) mit typischerweise 4-64KB als Speichereinheiten für die restlichen Komponenten • Verzeichnis für Abbildung Seitennummer à Physikalischer Speicherort wobei der physikalische Speicherort – eine Betriebssystemdatei inkl. Versatz, – eine Angabe Kopf-Sektor-Spur einer Festplatte oder – eine Angabe für Bandgerät und -nummer inkl. Versatz sein kann 21 Verwaltung leerer Seiten Verwendete Techniken: 1. Liste der freien Seiten – Hinzufügung falls Seite nicht mehr verwendet 2. Bitmap mit einem Bit für jede Seite – Umklappen des Bits k, wenn Seite k (de-)alloziert wird 22 Aufgabe Verwendete Techniken: 1. Liste der freien Seiten - Hinzufügung falls Seite nicht mehr verwendet 2. Bitmap mit einem Bit für jede Seite - Umklappen des Bits k, wenn Seite k (de-)alloziert wird Zur Erhöhung des sequentiellen Zugriffs sollten hintereinanderliegende Seiten verwendet werden. Welche Technik, 1. oder 2., würden Sie wählen, um dieses zu unterstützen? 23 Architektur eines DBMS Architecture of a DBMS / Course Outline Anwendungen Applications Webformulare Web Forms SQL-Schnittstelle SQL Interface Operator-Evaluierer Operator Evaluator Optimierer Optimizer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Puffer-Verwalter Buffer Manager WiederRecovery herstellungsManager Verwalter this course Parser Parser dieser Teil des Kurses Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Verwalter für externen Speicher Disk Space Manager DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 24 Puffer-Verwalter Buffer Manager Seitenanforderungen page requests 6 1 7 2 8 Fall 2008 3 3 1 4 5 externem und internem mediates between external Speicher storage and(Hauptspeicher) main memory, memory manages a designated main •I Verwaltet hierzu einen Seite disk page memory area, the buffer im pool besonderen Bereich free frame freier for this task. Rahmen Hauptspeicher, den Disk Pufferbereich pages are brought into pool) (buffer memory as needed and loaded into disk Festplatte • Externe Seiten in Rahmen memory frames. des Pufferbereichs laden A replacement policy decides which page to evict when the buffer is full. • Verdrängungsstrategie falls Pufferbereich voll Hauptspeicher main 7 4 • buffer Vermittelt zwischen The manager 6 9 10 11 · · · I Systems Group — Department of Computer Science — ETH Zürich 28 25 Schnittstelle zum Puffer-Verwalter Funktion pin für Anfragen nach Seiten und unpin für Freistellungen von Seiten nach Verwendung • pin(pageno) – Anfrage nach Seitennummer pageno – Lade Seite in Hauptspeicher falls nötig – Rückgabe einer Referenz auf pageno • unpin(pageno, dirty) – Freistellung einer Seite pageno zur möglichen Auslagerung – dirty = true bei Modifikationen der Seite Wofür nötig? 26 Implementation von pin() Implementation of pin () 1 2 3 4 5 6 7 8 9 10 11 12 Function: pin(pageno) if buffer pool already contains pageno then pinCount (pageno) pinCount (pageno) + 1 ; return address of frame holding pageno ; else select a victim frame v using the replacement policy ; if dirty (v) then write v to disk ; read page pageno from disk into frame v ; pinCount (pageno) 1; dirty (pageno) false ; return address of frame v ; 27 Implementation von unpin() Implementation of unpin () 1 Function: unpin(pageno, dirty) 2 pinCount (pageno) if dirty then dirty (pageno) 3 4 pinCount (pageno) 1; dirty ; Why don’t we write pages back to disk during unpin ()? Warum werden Seiten nicht gleich beim unpin zurückgeschrieben? 28 Verdrängungsstrategien Die Effektivität des Puffer-Verwalters hängt von der gewählten Verdrängungsstrategie ab, z.B.: • Least Recently Used (LRU) – Verdrängung der Seite mit längszurückliegendem unpin() • LRU-k – Wie LRU, aber k-letztes unpin(), nicht letztes • Most Recently Used (MRU) – Verdrängung der Seite mit jüngstem unpin() • Random – Verdrängung einer beliebigen Seite Wann welche Strategie einsetzen? 29 Pufferverwaltung in der Praxis • Prefetching – Antizipation von Anfragen, um CPU- und I/O-Aktivität zu überlappen • Spekulatives Prefetching: Nehme sequentiellen Seitenzugriff an und lese im Vorwege • Prefetch-Listen mit Instruktionen für den Pufferverwalter für Prefetch-Seiten • Fixierungs- oder Verdrängungsempfehlung – Höherer Code kann Fixierung (z.B. für Indexseiten) oder schnelle Verdrängung (bei seq. Scans) empfehlen • Partitionierte Pufferbereiche – Z.B. separate Bereiche für Index und Tabellen 30 Datenbanken vs. Betriebssysteme • Haben wir nicht gerade ein Betriebssystem entworfen? • Ja – Verwaltung für externen Speicher und Pufferverwaltung ähnlich • Aber – DBMS weiß mehr über Zugriffsmuster (z.B. Prefetching) – Limitationen von Betriebssystemen häufig zu stark für DBMS (Obergrenzen für Dateigrößen, Plattformunabhängigkeit nicht gegeben) 31 Datenbanken vs. Betriebssysteme • Gegenseitige Störung möglich – Doppelte Seitenverwaltung – DMBS-Transaktionen vs. Transaktionen auf Dateien organisiert vom Betriebssystem (journalling) – DBMS Pufferbereiche durch Betriebssystem ausgelagert – DBMS schalten Betriebssystemdienste aus • Direkter Zugriff auf Festplatten • Eigene Prozessverwaltung • ... 32 Architektur eines DBMS Architecture of a DBMS / Course Outline Anwendungen Applications Webformulare Web Forms SQL-Schnittstelle SQL Interface Operator-Evaluierer Operator Evaluator Optimierer Optimizer Transaction TransaktionsVerwalter Manager Lock SperrVerwalter Manager Dateiverwaltungsund Zugriffsmethoden Files and Access Methods Puffer-Verwalter Buffer Manager WiederRecovery herstellungsManager Verwalter this course Parser Parser dieser Teil des Kurses Ausführer Executor Figure inspired by Ramakrishnan/Gehrke: “Database Management Systems”, McGraw-Hill 2003. SQL-Kommandos SQL Commands Verwalter für externen Speicher Disk Space Manager DBMS Dateien für Daten und Indexe. . . data files, indices, Fall 2008 Datenbank Database Systems Group — Department of Computer Science — ETH Zürich 3 33 Datenbank-Dateien Database Files I I I So far we have talked about pages. Their management is • Seitenverwaltung unbeeinflusst vom Inhalt oblivious with respect to their actual content. • the DBMS verwaltet von Tupeln, ... On conceptual level,Tabellen a DBMS manages tables Indexstrukturen, of tuples and (among others). von Datensätzen (records) • indexes Tabellen sind Dateien Such tables arebesteht implemented as files ofmehrerer records: Seiten – Datei aus einer oder I A file consists of one or more pages. – Jede Seite speichert eine oder mehrere Datensätze I Each page contains one or more records. – Jeder Datensatz korrespondiert I Each record corresponds to one tuple. zu einem Tupel file 0 free file 1 page 0 page 1 page 2 page 3 free page 4 Fall 2008 page 5 page 6 Systems Group — Department of Computer Science — ETH Zürich page 7 37 34 Heap-Dateien Heap Files • The Wichtigster Dateityp: Speicherung von mit most important type of files in a database is the Datensätzen heap file. It willkürlicher Ordnung (konform mit SQL) stores records in no particular order (in line with, e.g., SQL). Linked list ofListe pages von Seiten Verkettete header page data page data page ··· data page pages w/ free space data page data page ··· data page full pages ü +Einfach zu implementieren easy to implement – most pages will in freeder pagefreie list Seiten ✗Viele Seiten aufend derupListe –(haben might have search Kapazität) many pages to place a (large) record alsotonoch ✗Viele Seiten anzufassen bis passende Seite gefunden Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 38 35 Heap-Dateien Heap Files Directory of pages • Verzeichnis von Seiten data page ··· data page data page ✗Verwendung als Abbildung mit Informationen über freie I use as space map with information about free page Plätze (Granularität ist Abwägungssache) I granularity as trade-off space $ accuracy ü Suche nach freien Plätzen effizient (range from open/closed bit to exact information) ✗Zusatzaufwand für Verzeichnisspeicher + free space search more efficient – small memory overhead to host directory 36 Freispeicher-Verzeichnis Welche Seite soll für neuen Datensatz gewählt werden? • Append Only – Immer in letzte Seite einfügen, sonst neue Seite anfordern • Best-Fit – Alle Seiten müssen betrachtet werden, Reduzierung der Fragmentierung • First-Fit – Suche vom Anfang, nehme erste Seite mit genug Platz – Erste Seiten füllen sich schnell, werden immer wieder betrachtet • Next-Fit – Verwalte Zeiger und führe Suche fort, wo Suche beim vorigen Male endete 37 Inhalt einer Seite Inside a Page Inside a Page IDID NAME NAME 4711 John John 4711 1723 Marc 1723 Marc 6381 Betty 6381 Betty I I SEX M M F SEX M M F 4 7 1 1 J o4h 7 n 1 1 J o hM n 1723M arc M 6 3 8 1 B e t tMy 6 arc F F •I record Datensatz-Kennung identifier (rid): hpageno, slotnoi (record identifier, record identifier (rid): rid) I record position (within page): hpageno, • Datensatz-Position slotno ⇥ bytesslotnoi per slot (Versatz auf (within der Seite) I Tuple record position page): deletion? record shouldn’t change Slotno Bytes pro Slot slotno ⇥xidbytes per slot ! slot directory (bitmap) •Tuple Datensatz gelöscht? deletion? slot directory I I no. of records in this page slot directory 101 3 Header –record rid sollte sich nichtchange ändern id shouldn’t !–slot directory (bitmap) Slot-Verzeichnis (Bitmap) I Fall 2008 M1723M 381Betty Systems Group — Department of Computer Science — ETH Zürich no. of records in this page 42 101 3 Header 38 Fall 2008 Systems Group — Department of Computer Science — ETH Zürich 42 nside aInhalte Page—Variable-Sized Fields Länge einer Seite: Felder variabler I I I I Variable-sized fields moved • Felder variabler Längeto zum end of Ende each verschoben record. I Placeholder points to – Platzhalter zeigt auf Position location. Warum? I Why? • Slot-Verzeichnis zeigt auf Start eines Feldes Slot directory points to start of each• record. Felder können auf Seite Recordsverschoben can move werden on page. (z.B. wenn sich Feldgröße I E.g., if field size changes. ändert) Create “forward address” if • Einführung einer record won’t fit on page. Vorwärtsreferenz, wenn I Future updates? Feld nicht auf Seite passt 4711 • MJohn?1723 • MM arc?6381 • FBetty?172 3• • M T i m o t h y ? forward slot directory Was passiert bei Updates? • no. of records in this page • • 3 Header 39 Alternative Seiteneinteilungen Alternative Page Layouts Alternative Page Layouts We have just populated data pages in a row-wise fashion: We have just wurden populated Datensätzen data pages in a row-wise fashion: • Im Beispiel zeilenweise angeordnet: a a11 a a22 aa33 aa4 4 b b11 b b22 bb33 bb4 4 c c11 c c22 cc33 cc4 4 d d11 d d22 dd33 dd4 a1 b1 c1 a b c c1 1 d1 1 a2 1 c1 b2 d1 c2 a2 d2 d2b2 a3 c2 b3d2 d2 c3 a3 d3 b3 c3 d3 a4 b4 a b c4 4 d4 4 c4 d4 page 0 page 0 4 c4 c4 page 1 page 1 We could could as as well wellAnordnung dothat thatcolumn-wise: column-wise: • Spaltenweise genauso möglich: We do aa11 aa22 aa33 aa44 Fall2008 2008 Fall bb11 bb22 bb33 bb44 cc11 cc22 cc33 cc44 dd11 dd22 dd33 dd44 aa1 1 aa33 aa44 aa22 aa3 3 bb1 1 bb3 3 bb4 4 page00 page SystemsGroup Group— —Department DepartmentofofComputer ComputerScience Science——ETH ETHZürich Zürich Systems bb2 2 bb3 3 · ·· ·· · page1 1 page 4444 40 Alternative Page Layouts Alternative Seitenanordnungen These two approaches are also known as NSM (n-ary storage model) and DSM (decomposition storage model).1 Vorgestellte Schemata heißen auch: I I Tuning knob for certain workload types (e.g., OLAP) – Row-Store Different behavior with respect to compression. – Column-Store Anwendungen fürPAX verschiedene A•hybrid approach is the (Partition Attributes Accross) Lasttypen undlayout: Anwendungskontexte (z.B. OLAP) Divide each page into minipages. •I Unterschiedliche Group attributes into them. Kompressionsmöglichkeiten % Ailamaki et al. Weaving Relations for Cache • Kombination Performance. VLDB 2001.möglich: minipage 3 minipage 2 I minipage 1 minipage 0 page 0 – Unterteilung einer Seite in Miniseiten 1 Recently, terms row-store and column-store have become popular, too. – mit the entsprechender Aufteilung Fall 2008 Systems Group — Department of Computer Science — ETH Zürich Ailamaki et al. Weaving Relations for Cache Performance. VLDB 2001 45 41 Zusammenfassung • Kennzeichen von Speichermedien – Wahlfreier Zugriff langsam (I/O-Komplexität) • Verwalter für externen Speicher – Abstraktion von Hardware-Details – Seitennummer à Physikalischer Speicherort • Puffer-Verwalter – Seiten-Caching im Hauptspeicher – Verdrängungsstrategie • Dateiorganisation – Stabile Record-Bezeichner (rids) – Verwaltung statischer und dynamischer Felder