Speichersystem und Pufferverwaltung in Datenbankmanagementsystemen



Ähnliche Dokumente
OPERATIONEN AUF EINER DATENBANK

Fachbericht zum Thema: Anforderungen an ein Datenbanksystem

Kapitel 8: Physischer Datenbankentwurf

Nachtrag zu binären Suchbäumen

Physischer Datenbankentwurf: Datenspeicherung

7. Übung - Datenbanken

Einführung in die technische Informatik

Datenbanken. Prof. Dr. Bernhard Schiefer.

Konzepte von Betriebssystemkomponenten Disk-Caches und Dateizugriff

Professionelle Seminare im Bereich MS-Office

Mit der Maus im Menü links auf den Menüpunkt 'Seiten' gehen und auf 'Erstellen klicken.

Aufgabe 1: [Logische Modellierung]

Systeme 1. Kapitel 6. Nebenläufigkeit und wechselseitiger Ausschluss

Algorithmik II. a) Fügen Sie in einen anfangs leeren binären Baum die Schlüsselfolge 20, 28, 35, 31, 9, 4, 13, 17, 37, 25 ein.

Individuelle Formulare

Binäre Bäume. 1. Allgemeines. 2. Funktionsweise. 2.1 Eintragen

Transaktionen und Synchronisation konkurrierender Zugriffe

Einrichtung des Cisco VPN Clients (IPSEC) in Windows7

Handbuch ECDL 2003 Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Virtueller Seminarordner Anleitung für die Dozentinnen und Dozenten

Physische Datenorganisation

Grundlagen verteilter Systeme

Handbuch ECDL 2003 Basic Modul 5: Datenbank Grundlagen von relationalen Datenbanken

AGROPLUS Buchhaltung. Daten-Server und Sicherheitskopie. Version vom b

Lineargleichungssysteme: Additions-/ Subtraktionsverfahren

Folge 19 - Bäume Binärbäume - Allgemeines. Grundlagen: Ulrich Helmich: Informatik 2 mit BlueJ - Ein Kurs für die Stufe 12

Kapiteltests zum Leitprogramm Binäre Suchbäume

SharePoint Demonstration

Übung - Datensicherung und Wiederherstellung in Windows 7

Betriebssysteme. Dipl.-Ing.(FH) Volker Schepper

Ist Excel das richtige Tool für FMEA? Steve Murphy, Marc Schaeffers

Datenstrukturen & Algorithmen

ÖKB Steiermark Schulungsunterlagen

(Prof. Dr. J. Schlichter, WS 2011 / 2012) Übungsleitung: Dr. Wolfgang Wörndl (gbs-ws11@mailschlichter.informatik.tu-muenchen.de)

Handbuch ECDL 2003 Basic Modul 2: Computermanagement und Dateiverwaltung Dateien löschen und wiederherstellen

Handbuch ECDL 2003 Professional Modul 3: Kommunikation Kalender freigeben und andere Kalender aufrufen

4D Server v12 64-bit Version BETA VERSION

Wichtige Hinweise zu den neuen Orientierungshilfen der Architekten-/Objektplanerverträge

EasyWk DAS Schwimmwettkampfprogramm

SJ OFFICE - Update 3.0

DATENBANKEN SQL UND SQLITE VON MELANIE SCHLIEBENER

1. Einfach verkettete Liste unsortiert 2. Einfach verkettete Liste sortiert 3. Doppelt verkettete Liste sortiert

Anleitung Homepage TAfIE

Advoware mit VPN Zugriff lokaler Server / PC auf externe Datenbank

Whitepaper. Produkt: combit Relationship Manager / address manager. Dateiabgleich im Netzwerk über Offlinedateien

Installation OMNIKEY 3121 USB

Lizenzen auschecken. Was ist zu tun?

Updatehinweise für die Version forma 5.5.5

Outlook. sysplus.ch outlook - mail-grundlagen Seite 1/8. Mail-Grundlagen. Posteingang

Überprüfung der digital signierten E-Rechnung

Ordner Berechtigung vergeben Zugriffsrechte unter Windows einrichten

mobilepoi 0.91 Demo Version Anleitung Das Software Studio Christian Efinger Erstellt am 21. Oktober 2005

Kommunikations-Management

Softwarelösungen: Versuch 4

Angaben zu einem Kontakt...1 So können Sie einen Kontakt erfassen...4 Was Sie mit einem Kontakt tun können...7

Über Arrays und verkettete Listen Listen in Delphi

Algorithmen und Datenstrukturen

Prozeß P1 Prozeß P2. Zur Synchronisation stehen den beiden Prozessen binäre Semaphore und die beiden Funktionen

1 SERIENDRUCK. 1.1 Grundlegende Informationen

3. Neuen Newsbeitrag erstellen Klicken Sie auf das Datensatzsymbol mit dem +, damit Sie einen neuen Newsbeitrag erstellen können.

Funktions-Postfach (Shared Mailbox) in Outlook 2010/2013 einrichten

Daten-Synchronisation zwischen Mozilla Thunderbird (Lightning) / Mozilla Sunbird und dem ZDV Webmailer

Windows 7: Neue Funktionen im praktischen Einsatz - Die neue Taskleiste nutzen

Formular»Fragenkatalog BIM-Server«

1 Voraussetzungen für Einsatz des FRITZ! LAN Assistenten

KURZANLEITUNG CLOUD OBJECT STORAGE

Architektur und Implementierung von Apache Derby

Einführung in die Programmierung Laborübung bei Korcan Y. Kirkici. 12.Übung bis

Der schnelle Weg zu Ihrer eigenen App

TeamSpeak3 Einrichten

11 Spezielle Einstellungen Ihres Baukastens

Um eine Person in Magnolia zu erfassen, gehen Sie wie folgt vor:

Schnelleinstieg in die (cs) AuftragPro

Konzepte der Informatik

Data Quality Management: Abgleich großer, redundanter Datenmengen

Anleitung OpenCms 8 Inhaltstyp Kommentare

1. Adressen für den Serienversand (Briefe Katalogdruck Werbung/Anfrage ) auswählen. Die Auswahl kann gespeichert werden.

FORUM HANDREICHUNG (STAND: AUGUST 2013)

Mengenvergleiche: Alle Konten außer das, mit dem größten Saldo.

Jeopardy and andere Quizformate im bilingualen Sachfachunterricht Tipps zur Erstellung mit Powerpoint

Die Lernumgebung des Projekts Informationskompetenz

Herzlich Willkommen bei der nfon GmbH

Tapps mit XP-Mode unter Windows 7 64 bit (V2.0)

Lizenzierung von System Center 2012

Installation von Updates

Schnelleinstieg. Datenimport für die EXPOSÉ - Familie. Import von Adress / Objektdaten aus MS Excel. = Datenintegration aus anderen Lösungen

SSDs und Flash Memory. Matthias Müller 16.Juni 2010 Institut für Verteilte Systeme

Wollen Sie einen mühelosen Direkteinstieg zum Online Shop der ÖAG? Sie sind nur einen Klick davon entfernt!

Leichte-Sprache-Bilder

Einführung in. Logische Schaltungen

Tipps und Tricks zu Netop Vision und Vision Pro

Windows 10. Vortrag am Fleckenherbst Bürgertreff Neuhausen.

1 topologisches Sortieren

Ihre Interessentendatensätze bei inobroker. 1. Interessentendatensätze

:: Anleitung Hosting Server 1cloud.ch ::

Matrix42. Use Case - Sicherung und Rücksicherung persönlicher Einstellungen über Personal Backup. Version September

Binäre Bäume Darstellung und Traversierung

NetStream Helpdesk-Online. Verwalten und erstellen Sie Ihre eigenen Tickets

Nach der Anmeldung im Backend Bereich landen Sie im Kontrollzentrum, welches so aussieht:

Synchronisations- Assistent

Transkript:

und in Datenbankmanagementsystemen Christoph Hennig 17.04.2008

1 Einleitung und Grundlagen K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS 2 Aufgaben Satzabbildung Satzadressierung 3 E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen 4

1 Einleitung und Grundlagen K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS 2 Aufgaben Satzabbildung Satzadressierung 3 E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen 4

K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS Software-, Hardware- und Consulting-Dienstleister Sitz im sonnigen Quedlinburg (Harz) Gründung 1993 als Händler von CAD/GIS-Software (CADdy) Seit 1995 Vertrieb und Herstellung eines selbstentwickelten CAD/GIS-Systems (GEOvision) Seit 2008 wird der Fokus verstärkt auf die Softwareentwicklung gelegt http://www.k2-computer.com 4 / 44

K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS Performance-Probleme im Produkt GEOvision führten zu der Diplomarbeit Probleme traten besonders im Umgang mit grossen Datenmengen auf Es bestanden zwei Möglichkeiten: 1 Evaluierung eines Datenbankmanagementsystems zur Datenhaltung 2 Entwicklung einer eigenen Lösung zur Datenhaltung Möglichkeit 2 wurde bearbeitet und hat gezeigt, dass Implementierungskonzepte der unteren Schichten eines DBMS erfolgreich angewendet werden können 5 / 44

K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS deskriptiv WAS Datensystem WIE prozedural Zugriffssystem Härder/Rahm 2001 Weiterentwicklung von DIAM Anwendungsprogramme/Benutzer SELECT... FROM... WHERE Anfrageübersetzung/-optimierung Zugriffspfadauswahl Zugriffskontrolle/Integritätskontrolle FINDE nächsten Satz SPEICHERE Satz (log.) Katalogverwaltung Sortierkomponente Sperrverwaltung SPEICHERE internen Satz FÜGE Eintrag im B*-Baum ein Record Manager Zugriffspfadverwaltung Logging/Recovery (Fehlerbeh.komp.) BEREITSTELLEN Seite j FREIGEBEN Seite j Systempufferverwaltung (Buffer Manager) LIES Block k Betriebssystem/ SCHREIBE Block k Dateiverwaltung Externspeicherverwaltung/Dateiverwaltung DB Query Optimizer aufgezeigt am Beispiel eines relationalen Datenbanksystems deskriptive, mengenorientierte Schnittstelle (z.b. SQL) satzorientierte Schnittstelle (log.) interne Satzschnittstelle (phys.) Dateischnittstelle Anwendung Datenbank-Verwaltungssystem (DBVS) Systempufferschnittstelle Betriebssystem/ Dateisystem 6 / 44

1 Einleitung und Grundlagen K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS 2 Aufgaben Satzabbildung Satzadressierung 3 E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen 4

Aufgaben des Zugriffssystems Aufgaben Satzabbildung Satzadressierung Stellt höheren Schichten eine satzorientierte DB-Schnittstelle zur Verfügung Verbirgt die Implementierungskonzepte für externe Sätze und logische Zugriffspfade Katalogverwaltung enthält Informationen über den Aufbau der Sätze und über vorhandene Zugriffspfade Wird verwendet, um durch logische Satzmengen zu navigieren: Operationen FIND NEXT <record> STORE <record> 8 / 44

Aufgaben des Zugriffssystems Aufgaben Satzabbildung Satzadressierung Die satzorientierte DB-Schnittstelle dient in DBS nach dem Hierarchie- oder Netzwerkmodell sowie in objektorientierten DBS als Anwendungsprogrammierschnittstelle. KUNDEN Name Plz Ort Geb.-Datum. Hennig 06484 Quedlinburg 27.09.80 Müller 07743 Jena 31.06.82 Tupel Cetin 04435 Leipzig- Schkeuditz 01.08.76 Staadt 26135 Oldenburg 03.12.87 Thorgau 99089 Erfurt 08.06.81 Spalte 9 / 44

Aufgaben des s Aufgaben Satzabbildung Satzadressierung Stellt dem Zugriffssystem die interne Satzschnittstelle zur Verfügung Realisiert physische Speicherungsstrukturen (interne Sätze, phys. Zugriffspfade) Bietet verschiedene Zugriffspfadarten und Speicherungsoptionen (zur Optimierung) Aufgaben lassen sich zwei Komponenten zuordnen: Recordund Index-Manager Operationen STORE <internal record> INSERT <b* tree entry> 10 / 44

Abbildung von Tupeln auf Sätze Aufgaben Satzabbildung Satzadressierung Materialisierte Speicherung * 04435 * 01.08.76 5 Cetin 18 Leipzig-Schkeuditz Satz mit eingebetteten Längenfeldern und Zeigern 5 Cetin 04435 18 Leipzig-Schkeuditz 01.08.76 Satz mit eingebetteten Längenfeldern Referenzierte Speicherung * 04435 * 01.08.76 Cetin Leipzig-Schkeuditz Tupel auf mehrere Sätze abgebildet 11 / 44

Abbildung von Tupeln auf Sätze Aufgaben Satzabbildung Satzadressierung Tupel wird auf einen oder mehrere physische Sätze abgebildet Physische Sätze besitzen ein eindeutiges Satzkennzeichen (zum Wiederauffinden) Konkatenation von Feldwerten fester Länge ergibt Satz fester Länge Feldwerte variabler Länge implizieren Sätze variabler Länge Einhaltung der Reihenfolge der Feldwerte kann aufgehoben werden, wenn Feldnamen mit gespeichert werden Komplexe Objekte/Tupel (Mengen-, Listenkonstrukturen) werden hier nicht betrachtet (siehe Literatur) Annahme Zur Vereinfachung werden hier im Folgenden physische Sätze fester und variabler Länge unterschieden und betrachtet. 12 / 44

Abbildung von Tupeln auf Sätze Aufgaben Satzabbildung Satzadressierung KUNDEN Name Plz Ort Geb.-Datum. Tupel Hennig Müller Cetin Staadt Thorgau 06484 07743 04435 26135 99089 Spalte Quedlinburg Jena Leipzig- Schkeuditz Oldenburg Erfurt 27.09.80 31.06.82 01.08.76 03.12.87 08.06.81 6 Hennig 06484 11 Quedlinburg 01.08.76 6 Müller 07743 4 Jena 31.06.82 5 Cetin 04435 18 Leipzig-Schkeuditz 01.08.76 6 Staadt 26135 9 Oldenburg 01.08.76 7 Thorgau 26135 6 Erfurt 01.08.76 Satz belegt 42 Byte STRUKTUR Ober-Teil Unter-Teil Menge Tupel X A 1 X B 1 X Z 1 A C 4 A D 8 A E 1 B E 7 C Y 4 D Y 5 E Z 3 X A 1 X B 1 X Z 1 A C 4 A D 8 A E 1 B E 7 C Y 4 D Y 5 E Z 3 Spalte Jeder Satz 6 Byte groß 13 / 44

Adressierung von Sätzen Aufgaben Satzabbildung Satzadressierung Datei des Betriebssystems Byte 0 Byte n 5 Ce tin... 1 8 Leipzig- Schkeuditz 01.0 8.76 Adresse des Datensatzes = Byte-Offset Zum Referenzieren eines Satzes werden z.b. in Zugriffspfaden Verweise auf den Satz gespeichert Byte-Offset ist statisch und nicht resistent gegenüber Datensatzverschiebungen Häufige Reorganisierungen notwendig und damit verbundene Aktualisierungen der Zugriffspfade 14 / 44

Adressierung von Sätzen Aufgaben Satzabbildung Satzadressierung Datei des Betriebssystems Block 0 Block n Block mit 4 bis 64K 5 Ce tin... 1 8 Leipzig- Schkeuditz 01.0 8.76 Adresse des Datensatzes = BlockNr. und Block-Offset TID-Konzept (Tuple IDentifier) Jede Satzadresse besteht aus Blocknummer und Index auf Blockinterne Slot-Tabelle 15 / 44

Adressierung von Sätzen (variabel) Aufgaben Satzabbildung Satzadressierung Var Record Page Record SlotTable FreeBytes Deleted Resistent gegenüber Satzverschiebungen innerhalb der Seite. Free Space Slot-Tabelle spiegelverkehrt zu den Datensätzen. Satzlänge implizit aus der Slot-Tabelle ermittelbar. Slot[4] Slot[3] Slot[2] Slot[1] Slot[0] 16 / 44

Aufgaben Satzabbildung Satzadressierung Beispiel: Adressierung von Sätzen (variabel) auf 2K-Block Anzahl freier Byte Beginn der Slottabelle Var Record Page 1852 2030 6 Hennig 06484 11 Quedlinburg 01.08.76 6 Müller 07743 4 Jena 31.06.82 5 Cetin 04435 18 Leipzig-Schkeuditz 01.08.76 6 Staadt 26135 9 Oldenburg 01.08.76 7 Thorgau 26135 6 Erfurt 01.08.76 Slot enthält Offset und Flag (Deleted, Hidden) zu einem Satz. Sätze fortlaufend dicht aufeinander folgend gespeichert. 146 112 70 41 5 178 Satzlänge ergibt sich aus der Differenz der Offsets der Slots. Slot[5] Slot[1] Beginn des Freibereichs 17 / 44

Adressierung von Sätzen (variabel) Aufgaben Satzabbildung Satzadressierung TID (32 Bit Adresse) wird in Anteil für BlockNr. und Anteil für Slotindex zerlegt (Bitmaske) 8 Bit für Slotindex erlauben es maximal 256 Datensätze auf einem Block zu verwalten Bei 8K-Block beträgt dann die kleinste Satzgrösse 30 Byte um Block voll auszulasten Maximale Dateigrösse liegt dann bei 128 GB (24 Bit für BlockNr.) u.u. muss die maximale Slotanzahl auf einer Seite an die Seitengrösse angepasst werden 18 / 44

Adressstabilität Einleitung und Grundlagen Aufgaben Satzabbildung Satzadressierung Block X Block Y Var Record Page 0... Var Record Page 1986 2042 6 Hennig 06484 11 Quedlinburg 01.08.76 6 Müller 07743 4 Jena 31.06.82 Block Y, Slot 1 6 Staadt 26135 9 Oldenburg 01.08.76 7 Thorgau 26135 6 Erfurt 01.08.76 14 Cetin-Abrahams 04435 18 01.08.76 Leipzig-Schkeuditz...... 108 74 70 41 5... 5 56 Im Zugriffspfad steht: Block X, Slot 3 Anstelle des Datensatzes wird Stellvertreter-TID gespeichert. Reorganisationen werden damit verzögert. 19 / 44

Aufgaben Satzabbildung Satzadressierung Adressierung von Sätzen (fest lang) Fix Record Page Bitlist for Used/Unused Slots Satzverschiebungen und Satzerweiterungen nicht nötig/möglich. Bitliste am Seitenanfang markiert Slots als belegt oder frei. Slotlänge nicht veränderbar -> direkte Adressierung. 20 / 44

Aufgaben Satzabbildung Satzadressierung Beispiel: Adressierung von Sätzen (fest lang) Fix Record Page 111100010001111001000000 X A 1 X B 1 X Z 1 A C 4 A D 8 A E 1 B E 7 C Y 4 D Y 5 E Z 3 TID (32 Bit Adresse) wird mittels DIV und MOD in BlockNr. und Slotindex zerlegt. Satzoperationen (Einfügen, Ersetzen, Lesen) performanter als bei variablen Satzlängen. 21 / 44

Realisierung langer Sätze Aufgaben Satzabbildung Satzadressierung TID des übergrossen Satzes: Block x, Slot 1 Block X Var Record Page 2021 2042 PageSets, bestehend aus Block A, Slot 1, 2036 Liste von (TID, Highest Byte) Block B, Slot 1, 4073 -Paaren Block C, Slot 1, 6110 Block D, Slot 1, 8148 5 21 Block A Var Record Page 0 2042 Block C Var Record Page 0 2042 5 2042 5 2042 Byte 0 Byte 2036 Block B Var Record Page 0 2042 Byte 4074 Byte 6110 Block D Var Record Page 0 2042 5 2042 5 2042 Byte 2037 Byte 4073 Byte 6111 Byte 8148 22 / 44

Realisierung langer Sätze Aufgaben Satzabbildung Satzadressierung Datensatz wird in Teildatensätze (MaxRecordSize) zerlegt Jeder Teildatensatz wird auf bekannte Weise gespeichert TID und höchstwertigstes Byte eines Teildatensatzes werden in einer sortierten Liste gesammelt Liste (PageSet) wird rekursiv wie ein Datensatz behandelt und gespeichert Es entsteht ein Zugriffsbaum (Key = Highest Byte) auf den Datensatz Selektiver Zugriff auf bestimmte Bereiche des Datensatzes möglich 23 / 44

1 Einleitung und Grundlagen K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS 2 Aufgaben Satzabbildung Satzadressierung 3 E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen 4

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Bisher: Speicherungsstrukturen basieren auf blockstrukturierten Dateien: READ <block>, WRITE <block> Zwischen einem READ und einem WRITE werden mehr Blockinhalte geändert als nur der einzelne Datensatz u.u. wird auf einen Block mehrfach hintereinander zugegriffen Deshalb:, welche einen begrenzten Hauptspeicherbereich als Pool für solche Dateiblöcke verwendet, mit dem Ziel READ-/WRITE-Aufrufe einzusparen 25 / 44

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Speicherdichte wächst bei Externspeichern schneller als die Zugriffszeit. Folglich verschlechtert sich das Verhältnis wahlfrei vs. sequentiell zu ungunsten wahlfreier Zugriffe. Prozessor Register Caches Hauptspeicher Kapazität Zugriffszeit Bytes 1-5 ns K - MBytes 2-20 ns M - GBytes 50-100 ns Kosten pro Einheit Lösung: Grosse Blöcke und geschickte Clusterung der Daten (um wahlfreie Zugriffe zu reduzieren)! Externspeicher Archivspeicher GBytes 4-10 ms T - PBytes sec - min Kapazität Zugriffzeit 26 / 44

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Stellt dem eine Systempufferschnittstelle zur Verfügung: GET <page>, RELEASE <page> Logische Seitenreferenz: 1 Seite im Cache Lokalisierung erfolgreich FIX-Vermerk Wartungsoperationen in Verwaltung (u.a. LRU) Pufferadresse zurückgeben 2 Seite nicht im Cache (Physische Seitenreferenz) Lokalisierung erfolglos Seite zur Ersetzung auswählen und u.u. zurückschreiben Angeforderte Seite lesen FIX-Vermerk Wartungsoperationen in Verwaltung (u.a. LRU) Pufferadresse zurückgeben 27 / 44

Zustände einer Seite im Cache E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen getpage() releasepage() getpage() Fixed Clean getpage() releasepage() UnFixed Clean savepage() flush() modifypage() getpage() savepage() flush() releasepage() Dateisystem (Betriebssystem) Fixed Dirty getpage() releasepage() UnFixed Dirty modifypage() newpage() discard() *Nirvana* 28 / 44

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Beispiel: Satzzugriff über Primärschlüssel Katalogseitenreferenz (Index vorhanden? Welche Datei?) 1 Index vorhanden Entsprechend der Indexhöhe bis zu 4 Indexseitenreferenzen Entsprechend der Satzgrösse mindestens eine Seitenreferenz 2 Index nicht vorhanden Datei seitenweise durchsuchen VIELE Seitenreferenzen!!! 29 / 44

Referenzlokalität Einleitung und Grundlagen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Beispiel zeigt: Speicherungsstrukturen und Zugriffspfadstrukturen haben wesentlichen Einfluss auf logisches Referenzverhalten Viele Seitenreferenzen werden über wenige ausgeprägte Seiten abgewickelt: Katalogseiten Adressumsetztabellen Freispeichertabellen Indexseiten (Wurzel bei B*-Bäumen) Tragen wesentlich zur Referenzlokalität bei 30 / 44

Lokalisierung von Seiten im Cache E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Seitenpool Hashtabelle h(seitennr) Direkte Suche im Speicher ineffizient Indirekte Suche über Hilfsstrukturen wie gekettet oder kompakte sortierte Listen ineffizient Hashstrukturen unterstützen erfolgreiche und erfolglose Suche effizient 31 / 44

Synchronisation Einleitung und Grundlagen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Cache liegt im gemeinsamen Speicher Viele Prozesse/Threads operieren parallel auf der Verwaltungsstruktur u.u. gibt es eine weitere Verwaltungsstruktur für Ersetzungsstrategie: z.b. LRU-Stack Synchronisierung der Zugriffe erforderlich Möglichkeiten: 1 Sperren der Verwaltungsstruktur 2 Sperren von Teilen der Verwaltungsstruktur 3 Verwende blockadefreie Algorithmen 32 / 44

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Sperren (von Teilen) der Verwaltungsstruktur Verwendung kritischer Abschnitte: EnterCriticalSection(), LeaveCriticalSection(), Binäre Semaphoren,... Nur ein Thread/Prozess kann Lesend bzw. Schreibend auf Datenstruktur(teil) zugreifen CAS (Compare and Swap) - Operationen (hardwaregestützt) erlauben atomares Lesen und Schreiben von Variablen Sperrvariable while (Lock=1) do sleep(timeout) Lock:=1 ModifiyData... Lock:=0 CAS mit Sperrvariable while (CASCompExch(Lock,1,0)>0) do sleep(timeout) ModifyData... CASExch(Lock,0) 33 / 44

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Sperren (von Teilen) der Verwaltungsstruktur CAS - Aufrufe sind performanter als Sperrobjekte (Betriebssystem) Teils aktives Warten auf Freigabe der Sperre vermeidet teure Threadwechsel Insbesondere wenn der gesperrte Bereich von kurzer Dauer ist (z.b. Lookup() in Hashtabelle) SpinLock while (CASCompExch(Lock,1,0)>0) do sleep(0) if (CASCompExch(Lock,1,0)=0) then break sleep(timeout) ModifyData... CASExch(Lock,0) 34 / 44

E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Feingranulare Zellsperren in der Hashtabelle Im Rahmen der Diplomarbeit wurde u.a. ein Cache implementiert, der SpinLocks zum Sperren einzelner Zellen einer Hashtabelle verwendet Lookup()- und Delete()-Operationen konnten massiv parallel ausgeführt werden Allerdings erforderten Insert()-Operationen durch die Überlaufbehandlung zusätzliche Sperrmechanismen (Intervallsperren bei Cuckoo-Hashing :-) Trotz des Mehraufwandes konnte auf Mehrprozessorrechnern eine Steigerung des Operationsdurchsatzes von über 25% erreicht werden Allerdings brach ab über 128 parallelen Threads der Durchsatz stärker ein, als bei herkömmlicher Implementierung 35 / 44

Blockadefreie Algorithmen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Sind eine Anwendung der CAS - Operationen ohne diese für Sperren zu verwenden Arbeiten nach dem folgenden Prinzip: 1 Lese aktuellen Zustand in lokale Variable 2 Arbeite mit dieser lokalen Variablen 3 CAS - Aufruf, der nur dann klappt, wenn sich der Zustand zwischenzeitlich nicht geändert hat, sonst erneuter Versuch :-) <Node> am Kopf einer Liste einfügen: repeat localhead:=list.head Node.Next:=localHead until CASCompExch(List.Head,Node,localHead)=localHead 36 / 44

Blockadefreie Algorithmen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Werden durch Mehrkernprozessoren zunehmen interessanter Skalieren sehr gut mit steigender Anzahl Threads Nicht einfach zu implementieren Zwei Probleme: Speicherverwaltung und ABA-Problem Speicher von freigegebenen Elementen darf nicht freigegeben werden ABA-Problem Zwischen dem zweimaligen Lesen lesen eines Wertes, wurde dieser durch Threadwechsel von einem anderen Thread geändert und wiederhergestellt. Der aktuelle Thread nimmt an, es habe sich nichts geändert. 37 / 44

Blockadefreie Algorithmen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Einfügen in einfach verkettete Liste Head 10 30 Tail 19 Thread 2 Thread 1 20 Head 10 30 Tail Head 10 30 Tail 19 20 Head 10 30 Tail Next-Zeiger hat sich geändert -> erneuter Versuch 38 / 44

Blockadefreie Algorithmen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Einfügen und Löschen in einfach verketteter Liste Head 10 30 Tail Thread 2 Thread 1 20 Head 10 30 Tail Head 10 30 Tail 20 Knotenverluste sind möglich 39 / 44

Blockadefreie Algorithmen E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen Zusätzliche CAS-Aufrufe um Next-Zeiger zu löschender Knoten zu markieren Im zweiten Schritt Knoten löschen, dh nicht freigeben, sondern in Freiliste einhängen!!! Blockadefreie Algorithmen haben so ihre Tücken :-) Performancegewinn gegenüber Sperrverfahren: z.b. auf Core 2 Duo fast halbe Laufzeit bei zwei einfügenden Threads Weiteres Problem: Listen referenzieren i.d.r. Daten, die trotzdem vor mehreren Zugriffen gesperrt werden müssen 40 / 44

1 Einleitung und Grundlagen K2 Computer Softwareentwicklung Diplomarbeit bei K2 5-Schichtenarchitektur von DBMS 2 Aufgaben Satzabbildung Satzadressierung 3 E/A-Architektur Aufgaben und Arbeitsweise Verwaltungsstrukturen 4

Es wurden Speicherungstrukturen im detailliert behandelt Auf physische Zugriffspfade und deren Anforderungen an Speicherungsstrukturen wurde nicht eingegangen Jeder sollte jetzt eine Vorstellung davon haben, wie Tabellendaten gespeichert werden (können) Sinn und Zweck einer wurden genannt und die grundlegende Arbeitsweise erklärt Ersetzungsstrategien sind Thema einer eigenen Vorlesung, ebenso Rückschreibstrategien, etc. Der Cache wurde herangezogen um einen Einblick in Kurzzeitsperren zu geben. Interessant und bestimmt auch sinnvoll erscheint hier die Betrachtung Blockadefreier Algorithmen und Datenstrukturen 42 / 44

Und wie sieht es mit der Praxis aus? Wer sich ein wenig vertiefen möchte, sollte einen Blick in Datenbanksysteme: Konzepte und Techniken der Implementierung (T. Härder, E. Rahm) werfen. Zudem findet man genügend Literatur zu blockadefreien Algorithmen und Datenstrukturen. Zur Vertiefung und Praxiserbrobung gibts per UNI-Verteiler ein Wrapper-Objekt zur Bearbeitung von Seiten für variabel lange Datensätze. Es ist ein Delphi-Projekt, welches noch mit ein wenig Leben gefüllt werden kann und sollte und an dem man sich per Debugger die Abläufe veranschaulichen kann. Zudem befindet sich dort ebenfalls ein CASList-Objekt, welches eine Delphi-Implementierung der vorgestellten blockadefreien Liste darstellt. 43 / 44

Vielen Dank für die Aufmerksamkeit! Wirth s Law [1995] Software gets slower faster than hardware gets faster.