Benutzer-Werkzeuge

Webseiten-Werkzeuge


toyexercise:architektur

Architektur

Die folgende Abbildung gibt einen Überblick zur Architektur des Gesamtsystems. Die blauen Komponenten werden zur Verfügung gestellt, die weißen Komponenten sind zu implementieren.

* Configuration Manager: Diese Klasse vereinfacht das dynamische Zusammenstellen und Laden der Komponenten eines ToyDB-Systems.

* Paged File Manager: Diese Komponente stellt I/O-Dienste für alle anderen Komponenten zur Verfügung. Hierzu werden so genannte Paged Files unterstützt. Dabei handelt es sich um seitenorientierte Dateien, d.h. eine derartige Datei kann seitenweise (blockweise) gelesen und geschrieben werden, wobei jede Seite 4 KB umfasst. Paged Files können wachsen (indem einfache neue Seiten angefordert werden) und erlauben einen wahlfreien Zugriff über die Seitennummer.

* Buffer Manager: In dieser Komponente ist die Pufferverwaltung implementiert, die gelesene Seiten im Hauptspeicher zwischenpuffert. Die Pufferverwaltung wird vom Paged File Manager aufgerufen.

* Record Manager: Diese Komponente übernimmt das Einpassen von Datensätzen (Tupeln) in Seiten, die in Paged Files verwaltet werden. Einzelne Sätze können über ihre RecordID (Seitennummer, Satznummer) adressiert werden. Darüber hinaus werden noch Scans unterstützt, die das Iterieren über alle Sätze einer Datei ermöglichen.

* Index Manager: Die Verwaltung von Zugriffspfaden in Form von B+-Bäumen ist Aufgabe dieser Komponente. Ein derartiger Zugriffspfad (Index) erlaubt das Einfügen und Löschen von Schlüssel-RecordID-Paaren und unterstützt außerdem das Navigieren über alle Indexeinträge bzw. Bereiche davon entsprechend der Sortierreihenfolge.

* System Manager: Hier sind Funktionen zusammengefasst, die für verschiedene Verwaltungsaufgaben benötigt werden. Dazu zählen die Verwaltung des Schemakatalogs sowie diverse Hilfsmethoden zum Anlegen und Löschen von Datenbanken, Tabellen und Indexen.

* Query Execution Plan Operators: Dieses Package enthält die Planoperatoren für die Ausführung von Anfragen, d.h. verschiedene Scans, Verbundimplementierungen etc. Weiterhin sind hier die Funktionen zur Kostenschätzung von Anfrageplänen realisiert.

* Query Processor: Diese Komponente realisiert einen sehr einfachen Anfrageprozessor, der Anfragen mit Selektionen und Verbunden ausführen kann, sowie Insert- und Delete-Operationen unterstützt.

* Statistics Manager: In dieser Komponente sind Funktionen zum Anlegen und Verwalten von Statistiken zur Relationen und Attributen zusammengefasst, die für die kostenbasierte Optimierung von Anfragen benötigt werden.

* Parser: Dieses Package beinhaltet einen Parser für eine Teilmenge von SQL. Der Parser nutzt dazu die vom Query Processor definierte Schnittstelle.

* Befehlszeileninterpreter: Diese Komponente umfasst im Wesentlichen die Klasse toydb.cmd.CmdLine, die einen einfachen Befehlszeileninterpreter für die interaktive Arbeit mit ToyDB implementiert. Weiterhin sind hier Klassen zum Erzeugen bzw. Löschen einer ToyDB-Datenbank eingeordnet.

* Transaction Manager: Diese Komponente realisiert ein striktes 2-Phasen-Sperrprotokoll (S2PL) um die Konsistenz der Daten bei konkurrent laufenden Transaktionen sicherzustellen.

Jede Komponente entspricht somit einer Schicht und wird durch ein eigenes Java-Package repräsentiert. Die Bezeichnung der Packages folgt dabei den in der Abbildung verwendeten Kürzel - so sind etwa die Schnittstellen des Index Managers im Package toydb.ix zu finden. Die von Ihnen zu erstellenden Implementierungsklassen sind dagegen im Package toydb.ix.impl zusammenzufassen.

* Utilities: Neben den oben abgebildeten Schichten gibt es noch einige Hilfsklassen im Package toydb.util, die in allen Komponenten genutzt werden.

toyexercise/architektur.txt · Zuletzt geändert: 2011/04/04 19:35 (Externe Bearbeitung)