Die Präsentation wird geladen. Bitte warten

Die Präsentation wird geladen. Bitte warten

Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze

Ähnliche Präsentationen


Präsentation zum Thema: "Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze"—  Präsentation transkript:

1 Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze stolze@informatik.uni-jena.de

2 2 Systemarchitektur

3 3 Anfrageübersetzer (Compiler) Optimizer Katalog Manager (Catalog Manager) Laufzeitumgebung (RunTime) Record Manager Zugriffspfadverwaltung (Index Manager) Sperrverwaltung (Lock Manager) Pufferverwaltung (Buffer Manager) Speicherverwaltung (Memory Manager) File Manager Betriebssystemabstraktion (OSS) Fehlerbehandlung (Error)

4 4 Compiler Klasse: DbjCompiler Datenstrukturen – Eingabe: String mit SQL Anweisung, DbjTable, DbjIndex – Ausgabe: DbjAccessPlan Verwendet – Katalog Manager zur Validierung des Plans

5 5 Optimizer Klasse: DbjOptimizer Datenstruktur: DbjAccessPlan, DbjIndex, DbjTable Verwendet – Katalog Manager um Indexe und Tupel-Anzahl der Tabellen zu ermitteln – Eingebaute Regeln zur Optimierung (keep it simple!)

6 6 Catalog Manager Klasse: DbjCatalogManager Datenstrukturen: – Eingabe: DbjRecord – Ausgabe: TableId/IndexId/…, DbjTable, DbjIndex Verwendet – Record Manager um Kataloginformationen von den entsprechenden Tabellen zu erhalten – Eingebaute Definition der Katalogtabellen

7 7 RunTime Klasse: DbjRunTime Datenstrukturen: DbjAccessPlan, DbjTuple, DbjRecord, DbjIndexKey Verwendet – DbjTable (von Katalog Manager) zur Interpretation der Records in Tupel – Record Manager um die Records zu erhalten – Index Manager um Indexzugriff durchzuführen Anmerkungen – Übersetzt baumartigen Zugriffsplan in Serie von geschachtelten “Iteratoren”

8 8 Record Manager Klasse: DbjRecordManager Datenstrukturen: TupelId, DbjRecord, DbjPage Verwendet – Buffer Manager zum Zugriff auf die Seiten – Lock Manager um Datenseiten zu sperren Anmerkungen – Die Daten der Records werden aus dem Systempuffer in die DbjRecord Struktur kopiert

9 9 Index Manager Klasse: DbjIndexManager Datenstrukturen: DbjKey, TupelId, DbjPage Verwendet – Buffer Manager zum Zugriff auf die Seiten – Lock Manager um Indexseiten zu sperren Anmerkungen – Verwendet nicht Record Manager; Seiteninhalte werden selbst verwaltet!

10 10 Lock Manager Klasse: DbjLockManager Datenstrukturen: LockId, PageId Verwendet – Shared Memory für die Lockliste Anmerkungen – Sperrgranulat = Seite

11 11 Buffer Manager Klasse: DbjBufferManager Datenstrukturen: DbjPage, “char *” (Blöcke) Verwendet – File Manager um die Blöcke bereitzustellen – Shared memory für den Puffer Anmerkungen – Implementiert Force/Steal; ausser für geänderte Seiten – dort erfolgt No-Steal

12 12 Memory Manager Klasse: DbjMemoryManager Datenstrukturen: “char *” (Speicherbereiche/-blöcke) Anmerkungen – Verwendet keine anderen Komponenten; basiert nur auf Betriebssystem – Kann auch als Teil von OSS (Betriebssystemabstraktion) angesehen werden

13 13 File Manager Klasse: DbjFileManager Datenstrukturen: SegmentId, Dateien, “char *” (Blöcke) Anmerkungen – Verwendet keine anderen Komponenten; basiert nur auf Betriebssystem

14 14 Fehlerbehandlung Klasse: DbjError Datenstrukturen: DbjComponent, DbjErrorCode Anmerkungen – Verwendet keine anderen Komponente; wird aber von allen anderen genutzt!

15 15 Systemsteuerung Klasse: DbjSystem Datenstrukturen: keine Verwendet – Buffer Manager um Puffer einmalig anzulegen (bzw. freizugeben) – Lock Manager um Lockliste einmalig anzulegen (bzw. freizugeben) – Catalog Manager um Katalog zu initialisieren

16 16 Operating System Services (OSS) Abstraktion aller kritischen Betriebssystemfunktionen – File-I/O – Speicherverwaltung – Latching

17 17 Prozessmodell

18 18 Überblick Lockliste Buffer Session 2Session n Serverprozess legt an / zerstört Session 1

19 19 Internas von Sessions Session i Je 1 Instanz von: Compiler Optimizer Catalog Manager RunTime Record Manager Index Manager Lock Manager Buffer Manager Memory Manager File Manager

20 20 Anmerkungen Jede Transaktion/Session wird in genau einem Prozess abgearbeitet – Kein IPC (inter-process-communication) – Jeder Prozess hat eigene Instanzen von den verschiedenen Komponenten (Managern) Buffer & Lockliste liegen im Shared Memory – Zugriff von mehreren Transaktionen muss mittels Latches synchronisiert werden – Serverprozess ist nur für das Anlegen der Shared Memory Segmente zuständig


Herunterladen ppt "Datenbanksystementwicklung – Systemarchitektur & Prozessmodell – Knut Stolze"

Ähnliche Präsentationen


Google-Anzeigen