4. DBS-Pufferverwaltung

Ähnliche Dokumente
3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung

3. Speichersystem / Pufferverwaltung

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung

Implementierung von Datenbanksystemen

4 Systempuffer (Buffer Pool) Prof. Dr.-Ing. Wolfgang Lehner

Komponenten der Zugriffszeit

Realisierung eines Dateisystems. Blockzuordnung bei Magnetplatten

3. DB-Pufferverwaltung

3. DB-Pufferverwaltung

Rückblick: Architektur und Hintergrundspeicher

DB IIb, Implementierung von Datenbanken

In heutigen Computern findet man schnellen/teuren als auch langsamen/billigen Speicher

KAPITEL 2 SPEICHERSTRUKTUREN UND VERWALTUNG DES HINTERGRUNDSPEICHERS

Datenbanksysteme II a

(Cache-Schreibstrategien)

Cache Grundlagen. Schreibender Cache Zugriff. SS 2012 Grundlagen der Rechnerarchitektur Speicher 22

Hash-Verfahren. Einführung

Hash-Verfahren. Prof. Dr. T. Kudraß 1

9.3 Fehlerbehandlung

Lösung von Übungsblatt 2

Grob-Struktur des Prozessor-Speichersystems

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Betriebssysteme Kap J, Teil C: Paging, Pagereplacement

Dateiorganisation und Zugriffsstrukturen. Prof. Dr. T. Kudraß 1

Überlaufbehandlung ohne Verkettung

Betriebssysteme (BTS)

Lösung von Übungsblatt 2

Übung zu Grundlagen der Betriebssysteme. 14. Übung

5. Aufgabenblatt Speicherverwaltung

Datenbankanwendung. Prof. Dr.-Ing. Sebastian Michel TU Kaiserslautern. Wintersemester 2014/15.

Verdrängung eingelagerter Fragmente

KAPITEL 2 VERWALTUNG DES HINTERGRUNDSPEICHERS

Technische Realisierung (1)

Quiz. Gegeben sei ein 16KB Cache mit 32 Byte Blockgröße. Wie verteilen sich die Bits einer 32 Bit Adresse auf: Tag Index Byte Offset.

Einführung Verteilte DBS Schemaarchitektur Katalogverwaltung Namensverwaltung

Kapitel 8: Physischer Datenbankentwurf

Algorithmen und Datenstrukturen 1

Algorithmen und Datenstrukturen 1

Algorithmen I. Tutorium 1-4. Sitzung. Dennis Felsing

Übung zu Einführung in die Informatik # 10

Speicherhierarchie. Für die Dauer eines Zugriffs wird die Seite im Puffer fixiert (pin) Werden Daten geändert, so wird die Seite als dirty markiert

Lösungsvorschlag für Übung 3 1. Oktober 2010

Teil 2: Speicherstrukturen

4. Logging und Recovery: Grundlagen

Betriebssysteme, Rechnernetze und verteilte Systeme 1 (BSRvS1) Virtueller Speicher.

Naiver Ansatz. Blöcke und Seiten. Betriebssysteme I Sommersemester 2009 Kapitel 6: Speicherverwaltung und Dateisysteme

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl

Tutorium Rechnerorganisation

Lösung von Übungsblatt 5

Aufbau Datenbanksysteme

Betriebssysteme (BS)

Lösungsvorschlag zur 10. Übung

Kapitel 2: Referenzarchitektur für Datenbanksysteme. Kapitel 2: Referenzarchitektur für Datenbanksysteme. Was ist ein Dienst?

Grundlagen: Algorithmen und Datenstrukturen

Virtueller Speicher WS 2011/2012. M. Esponda-Argüero

Was machen wir heute? Betriebssysteme Tutorium 11. Mounten: Vorher. Frage 11.1.a

3. Speicher- und Seitenzuordnung

Cache Blöcke und Offsets

Darmstadt University of Technology. Möglichkeiten für den Einsatz von Lastverteilungsstrategien. Videoverteilung

In diesem Abschnitt wollen wir uns mit der Architektur von Datenbank Managements Systemen beschäftigen.

Adreßräume. Motivation. Seitenersetzung (Paging) Systemsoftware. = Referenzlokalität. Seite 2.1. Instruktionen werden wiederholt ausgeführt

Leichtgewichtsprozesse

Leichtgewichtsprozesse

Mehrwegbäume Motivation

Recovery. Prof. Dr. T. Kudraß 1

Entwicklung der Datenbanksysteme

Rechnerstrukturen. 5. Speicher. Inhalt. Vorlesung Rechnerstrukturen Wintersemester 2002/03. (c) Peter Sturm, Universität Trier 1.

Integriertes Seminar Datenbanken und Informationssysteme. Was sind Peer-to-Peer Systeme? Wie kann man diese effizient nutzen?

Aufgabe 10.1: Lösung:

Physische Datenorganisation

Algorithmen II Vorlesung am

Hauptspeicherverwaltung - Memory Management

Methodik zur Optimierung in Datenbanken. Anja Rommel, 14-INM

Datenbanken Implementierungstechniken SS2015

Indizierung von Geodaten - Raumbezogene Indexstrukturen. Seminar mobile Geoinformationssystem Vortrag von Markus Steger

Systeme 1. Kapitel 3 Dateisysteme WS 2009/10 1

Optimierung von Datenbanken

Grundlagen der Rechnerarchitektur. Speicher

Cache. Dr.-Ing. Volkmar Sieh. Institut für Informatik 3: Rechnerarchitektur Friedrich-Alexander-Universität Erlangen-Nürnberg SS 2011

Systemprogrammierung

, 2014W Übungsgruppen: Mo., Mi.,

Query Result Caching. Optimierung des Datenbankzugriffs

5 Kernaufgaben eines Betriebssystems (BS)

Algorithm Engineering. Alexander Kröller, Abteilung Algorithmik, IBR

Physischer Datenbankentwurf: Datenspeicherung

Baum-Indexverfahren. Einführung

SAP R/3 Prozessübersicht

Baum-Indexverfahren. Prof. Dr. T. Kudraß 1

Programmiertechnik II

Teil VII. Hashverfahren

Transkript:

4. DBS-Pufferverwaltung llgemeine Charakteristika blauf des Pufferzugriffs Referenzstrings, Stacktiefenverteilung Speicherzuteilung im Puffer Suche im Puffer Schreibstrategien (Force vs. Noforce) Lesestrategien (Prefetching, Demand Fetching) Seitenersetzungsverfahren Klassifikation von Ersetzungsverfahren LRU, FIFO, CLOCK, GCLOCK, LRD... Leistungsanalyse von Ersetzungsverfahren Neuere Ersetzungsverfahren LRU-K Prioritätsgesteuerte Seitenersetzung (LRU-Priority) daptives LRU Prof. E. Rahm 4 - Select * FROM PERS WHERE NR =, K55, Stellung der Pufferverwaltung innerhalb eines DBS Transaktionsprogramme, die auf die Datenbank zugreifen TP TP 2 TP n Stelle Seite Pi bereit (FIX) Gib Seite P i frei (UNFIX) nfrageverarbeitung und Zugriffspfadroutinen logische Seitenreferenzen DBS-Pufferverwaltung Datenbanksystem Lies Seite Pi Schreibe Seite P i physische Seitenreferenzen Dateiverwaltung Plattenzugriffe Prof. E. Rahm 4-2

Typische Referenzmuster in DBS. Sequentielle Suche (Bsp.: Relationen-Scan) S i S j S k S l 2. Hierarchische Pfade (Bsp.: Suchen über B*-Bäume) 3. Zyklische Pfade (Bsp.: barbeitung verketteter Satzmengen) Prof. E. Rahm 4-3 Seitenreferenzstrings jede Datenanforderung ist eine logische Seitenreferenz ufgabe der Pufferverwaltung: Minimierung der physischen Seitenreferenzen Referenzstring R = <r, r 2,... r i,... r n > mit r i = ( T i, D i, S i ) T i D i S i zugreifende Transaktion referenzierte DB-Partition referenzierte DB-Seite Referenzstring-Information ermöglicht Charakterisierung des Referenzverhaltens - insgesamt - bezüglich bestimmter Transaktionen, Transaktions-Typen und DB-Partitionen Bestimmung von Lokalität und Sequentialität Prof. E. Rahm 4-4

LRU-Stacktiefenverteilung Maß für die Lokalität LRU-Stack enthält alle bereits referenzierten Seiten in der Reihenfolge ihres Zugriffsalters Bestimmung der Stacktiefenverteilung: pro Stackposition i wird Zähler c i geführt Rereferenz einer Seite führt zur Zählererhöhung für die jeweilige Stackposition => Zählerwerte entsprechen der Wiederbenutzungshäufigkeit Für LRU-Seitenersetzung kann aus der Stacktiefenverteilung für eine bestimmte Puffergröße unmittelbar die Trefferrate (bzw. Fehlseitenrate) bestimmt werden Wiederbenutzungswahrs cheinlichkeit (%) Lokalität wahlfreie Zugriffsverteilung Prof. E. Rahm 4-5 Stacktiefe Beispiel Referenzstring: B C C B C D E E LRU-Stack: 2 3 4 5 B C D E Stacktiefenverteilung 2 3 4 5 Prof. E. Rahm 4-6 Stacktiefe

Speicherzuteilung im DB-Puffer global ( gemeinsamer Pufferbereich) lokal/ partitionierte Pufferbereiche statisch dynamisch gleichförmige Partitionen angepaßte Partitionen Partitionierungsmöglichkeiten: eigener Pufferbereich pro Transaktion bzw. Query Transaktionstyp-bezogene Pufferbereiche Seitentyp-bezogene Pufferbereiche DB (-Partitions)-spezifische Pufferbereiche Prof. E. Rahm 4-7 Suche im Puffer Direkte Suche in Pufferrahmen Indirekte Suche über Hilfsstrukturen Sequentielle Liste sortiert / unsortiert Verkettete Liste Hash-Tabelle Probleme der direkten Suche hohe lineare Suchkosten proportional zur Puffergröße hohe Wahrscheinlichkeit von Paging-I/Os Listenstrukturen: lineare Suchkosten Beste Lösung: Hash-Tabelle mit Kollisionsbehandlung z.b. durch Überlaufketten Prof. E. Rahm 4-8

Suche (2) Hash-Tabelle mit Überlaufketten Infos pro Eintrag h (P i ) = k k P j B 2 P i B 3 P k B - H Seiten-Nummer Pufferadresse Fix-Zähler Änderungsbit (bzw. Änderungszähler) evtl. Zeitpunkt der ersten Änderung etc. Prof. E. Rahm 4-9 Schreibstrategien Ersetzung einer geänderten Seite erfordert vorheriges Zurückschreiben der Änderung in permanente DB auf Externspeicher synchrones (=> ntwortzeitverschlechterung) vs. asynchrones usschreiben bhängigkeit zur gewählten usschreibstrategie (Force vs. Noforce) FORCE: alle Änderungen einer Transaktion werden spätestens beim Commit in die DB zurückgeschrieben ("write-through") i.a. stets ungeänderte Seiten zur Ersetzung vorhanden vereinfachte Recovery nach Rechnerausfall (Änderungen beendeter Transaktionen sind bereits in der permanenten DB) hoher E/-Overhead starke ntwortzeiterhöhung für Änderungstransaktionen NOFORCE: kein Durchschreiben der Änderungen bei Commit (verzögertes usschreiben,"deferred write-back") Seite kann mehrfach geändert werden, bevor ein usschreiben erfolgt (geringerer E/- Overhead, bessere ntwortzeiten) vorausschauendes (asynchrones) usschreiben geänderter Seiten erlaubt auch bei NOFORCE, vorwiegend ungeänderte Seiten zu ersetzen synchrone Schreibvorgänge in die DB können weitgehend vermieden werden Prof. E. Rahm 4-0

Lesestrategien Preplanning Prefetching Demand Fetching Transaktionsprogramme; Programmanalyse physische Datenstrukturierung; Clusterbildung; Verarbeitungswissen keine Vorausaktionen große Fehlrate ungenaue Obermengen falsche Entscheidungen möglich Lokalitätserhaltung im Puffer Prof. E. Rahm 4 - Referenzverhalten und Ersetzungsverfahren Grundannahme bei Ersetzungsverfahren Refererenzverhalten der jüngeren Vergangenheit ähnelt Referenzverhalten in der näheren Zukunft Nutzung der typischerweise hohen Lokalität bei Ersetzung manchmal Sequentialität oder zufällige rbeitslast (RNDOM-Referenzen) Kombinationen bzgl. Referenzen/Ersetzung: RNDOM/RNDOM, RNDOM/OPT, Lokalität/RNDOM, Lokalität/OPT Grenzfälle zeigen Optimierungsmöglichkeiten auf Fehlseitenrate 00% R/R R/OPT D = DB-Größe in Blöcken L/OPT L/R Prof. E. Rahm 4-2 D # Rahmen im DB-Puffer

Kriterien für die uswahl der zu ersetzenden Pufferseite Verfahren lter Letzte Referenz Referenzhäufigkeit ndere Kriterien OPT RNDOM LRU LFU FIFO CLOCK GCLOCK LRD V LRD V2 LRU-K LRU-Priority daptives LRU Prof. E. Rahm 4-3 Least-Recently-Used (LRU) Beispiel (Puffergröße 4): Referenz der Seite C Referenz der Seite E B C D LRU-Stack B C D Unterscheidung zwischen Least-Recently-Referenced Least-Recently-Unfixed und FIX FIX UNFIX UNFIX B B Prof. E. Rahm 4-4 t

Least-Frequently-Used (LFU) Führen eines Referenzzählers pro Seite im Puffer Ersetzung der Seite mit der geringsten Referenzhäufigkeit RZ 2 4 3 3 6 3 lter einer Seite wird nicht berücksichtigt Prof. E. Rahm 4-5 die älteste Seite im Puffer wird ersetzt FIFO (First-In First-Out) Referenzierungsverhalten während Pufferaufenthaltes wird nicht berücksichtigt Prof. E. Rahm 4-6

Erweiterung von FIFO CLOCK (Second Chance) Referenzbit pro Seite, das bei Zugriff gesetzt wird Ersetzung erfolgt nur bei zurückgesetztem Bit (sonst erfolgt Zurücksetzen des Bits) 0 0 0 annähernde Berücksichtigung des letzten Referenzierungszeitpunktes Prof. E. Rahm 4-7 GCLOCK (Generalized CLOCK) pro Seite wird Referenzzähler geführt (statt Bit) Ersetzung nur von Seiten mit Zählerwert 0 (sonst erfolgt Dekrementierung des Zählers und Betrachtung der nächsten Seite) 0 0 5 2 2 3 Verfahrensparameter: Initialwerte für Referenzzähler Wahl des Dekrementes Zählerinkrementierung bei erneuter Referenz Vergabe von seitentyp- oder seitenspezifischen Gewichten Prof. E. Rahm 4-8

Least-Reference-Density (LRD) Referenzdichte: Referenzhäufigkeit während eines bestimmten Referenzintervalls LRD Variante : Referenzintervall entspricht lter einer Seite Berechnung der Referenzdichte: Globaler Zähler GZ: Gesamtanzahl aller Referenzen Einlagerungszeitpunkt EZ: GZ-Wert bei Einlesen der Seite Referenzzähler RZ Referenzdichte RD() j = RZ() j ---------------------------- GZ EZ() j RZ EZ RD B C D D E F F F F Prof. E. Rahm 4-9 B C D E F Least-Reference-Density (2) LRD Variante 2: konstante Intervallgröße periodisches Reduzieren der Referenzzähler, um Gewicht früher Referenzen zu reduzieren Reduzierung von RZ durch Division oder Subtraktion: RZ( i) RZ( i) = -------------- (K > ) oder K RZ( i) = RZ( i) K2 K3 falls RZ() i K2 K3 sonst ( K2 > 0, K3 0) t t2 t3 B C D D E F F F F t t2 t3 RZ() RZ(B) RZ(C) RZ(D) RZ(E) Prof. E. Rahm 4-20

Simulationsergebnisse Prof. E. Rahm 4-2 Probleme von LRU LRU ungeeignet für sequentielle Zugriffsmuster (z.b. Relationen-Scan) abgearbeitete Seiten werden für dieselbe Query/Transaktion nicht mehr benötigt sofortige Ersetzung sinnvoll (-> Most Recently Used, MRU) LRU nutzt kein Wissen über spezielle Referenzfolgen, z.b. zyklisches Referenzieren einer Menge von Seiten zyklisches Referenzieren von S Seiten mit S > #Rahmen internes Thrashing zyklisches Referenzieren von S Seiten mit S < #Rahmen und Interferenz durch andere Transaktionen mit schnellerer nforderung (stealing) externes Thrashing LRU berücksichtigt nicht unterschiedliche Referenzhäufigkeiten, z.b. zwischen Index- und Datenseiten LRU berücksichtigt nicht Charakteristika unterschiedlicher nfrage-/ Transaktionstypen Bsp.: Transaktionen mit hoher Referenzlokalität können durch gleichzeitige sequentielle Scans mit schneller Seitenanforderung stark benachteiligt werden lternativen usnutzen von Kontextwissen des Query-Optimierers ("hints" an Pufferverwaltung) LRU-Erweiterungen bzgl. Prioritäten, Referenzhäufigkeiten etc. Prof. E. Rahm 4-22

LRU-K Berücksichtigung der K letzten Referenzzeitpunkte einer Seite erlaubt pproximation der Referenzhäufigkeit durch Bestimmung des mittleren Zeitabstands zwischen Referenzen einer Seite Beschränkung auf die K letzten Referenzen ist einfache Methode, Information aktuell zu erhalten (keine zusätzlichen Tuning-Parameter wie bei LRD V2) Beispiel (K=4) B B B B B B Zeit 50 52 55 60 62 65 70 72 75 76 zur Ersetzung genügt es, K-letzten Referenzierungszeitpunkt zu berücksichtigen! LRU-2 (d.h. K=2) stellt i.a. beste Lösung dar ähnlich gute Ergebnisse wie für K > 2, jedoch einfachere Realisierung bessere Reagibilität auf Referenzschwankungen als für größere K Prof. E. Rahm 4-23 Prioritätsgesteuerte Seitenersetzung Bevorzugung bestimmter Transaktionstypen/DB-Partitionen z.b. um Benachteiligungen durch sehr lange Queries oder sequentielle Zugriffe zu vermeiden => Berücksichtigung von Prioritäten bei der Pufferverwaltung Verfahren PRIORITY-LRU: pro Prioritätsstufe eigene dynamische Pufferpartition; LRU-Kette pro Partition Priorität einer Seite bestimmt durch DB-Partition bzw. durch (maximale) Priorität referenzierender Transaktionen ersetzt wird Seite aus der Partition mit der geringsten Priorität. usnahme: die w zuletzt referenzierten Seiten sollen (unabhängig von ihrer Priorität) nicht ersetzt werden Kompromiss zwischen Prioritäts- und absolutem LRU-Kriterium möglich Priorität 3 (hoch) S60 99 S0 93 S6 90 Priorität 2 Seiten-ID LRZ S8 76 S45 65 S7 56 Priorität RZ = 00, w=30 S55 82 Prof. E. Rahm 4-24 S 7 mögliche Ersetzungskandidaten

daptives LRU* Verwendung von 2 LRU-Ketten L: Seiten die nur -mal referenziert wurden (v.a. für sequentielle Zugriffe) L2: Seiten, die wenigstens 2-mal referenziert wurden für Cache-Größe c werden 2c Seiten in L und L2 verwaltet jede Liste verwaltet in einem Top-Bereich (T bzw. T2) die gepufferten Seiten sowie MRU- in einem Bottom-Bereich (B bzw. B2), die nicht mehr gepufferten Position Seiten T + T2 <=c ; L + L2 = T + T2 + B + B2 <=2c; L <=c falls angeforderte Seite in L oder L2 wird sie an MRU-Position von L2 gebracht, ansonsten an MRU-Position von L LRU- Parameter p = T bestimmt relatives Verhältnis Position zwischen L- und L2-Seiten im Puffer dynamische npassung von p gemäß aktueller Verteilung von sequentiellen Zugriffen und Zugriffen mit temporaler Lokalität LRU- Position * N. Megiddo, D.S. Modha: Outperforming LRU with an daptive Replacement Cache lgorithm. IEEE Computer, pril 2004 Prof. E. Rahm 4-25 L2 B2 T2 T B L daptives LRU (2) Ersetzung für Referenz auf Seite x : Hit in T oder T2: Bringe x an MRU-Position von T2 2:"Hit" in B: p := min (p+k,c) mit k = falls B >= B2, sonst k= B2 / B ; Erhöhe p ( T ) REPLCE(x,p); lese x ein und bringe x an MRU-Position von T2 3: "Hit" in B2: p:=max(p-k2,0) mit k2= falls B2 >= B, sonst k2= B / B2 ; Reduziere p (erhöhe T2 ) REPLCE(x,p); lese x ein und bringe x an MRU-Position von T2 4: Miss: REPLCE (x,p); lese x ein und bringe x an MRU-Position von T REPLCE (x,p): IF T > 0 and (p< T OR (p= T and (x in B2)) Ersetze LRU-Seite von T (-> Wechsel an MRU-Position von B) ELSE Ersetze LRU-Seite von T2 (-> Wechsel an MRU-Position von B2) Beispiel (c=4) L2 T2 H G F G C K F Referenzen L T E D C B p=2 Prof. E. Rahm 4-26

daptives LRU: Beobachtungen daptivität über erweiterte Listen Heuristik: investiere in erfolgreiche Liste (vergrößere T bzw. T2 für Treffer in B bzw. B2 rein sequentielle Zugriffe füllen L; fehlende Treffer in B vergrößern T2 Prof. E. Rahm 4-27 Zusammenfassung Referenzmuster in DBS sind Mischformen sequentielle, zyklische, wahlfreie Zugriffe Lokalität innerhalb und zwischen Transaktionen Seiten mit unterschiedlich hoher Referenzdichte Verwaltungsaufgaben: Suche im Puffer: durch Hash-Verfahren Speicherzuteilung: globale (Pufferrahmen für alle Transaktionen) vs. lokale Strategien (Sonderbehandlung bestimmter nfragen bzw. DB-Bereiche) Behandlung geänderter Seiten: NOFORCE, asynchrones usschreiben Seitenersetzung: erfordert Vorhandensein von Lokalität (sonst Verhalten wie ~ RNDOM) Seitenersetzungsverfahren "zu genaue" Verfahren sind schwierig einzustellen ( instabil) Nutzung mehrerer Kriterien möglich: lter, letzte Referenz, Referenzhäufigkeit LRU ist guter Default-nsatz Erweiterungen von LRU LRU-2 wählt Ersetzungskandidaten aufgrund des vorletzten Referenzzeitpunktes aus Berücksichtigung von Prioritäten daptives LRU Prof. E. Rahm 4-28