Lehr- und Forschungseinheit für Datenbanksysteme Datenbanksysteme Database Systems

Projektarbeit

Implementierung eines Blockmanagers in Java

Inhalt

Bei der Entwicklung von Baumstrukturen ist es notwendig einen Mechanismus zu haben welcher Daten, auf Festplatte speichert und diese bei Bedarf auch zurückliefert. Dadurch ist es möglich Bäume erst bei Bedarf mit Daten zu füllen und nicht schon zu Beginn komplett aufzubauen. Dies ist z.B. für Präsentationszwecke übers Internet sehr hilfreich, da hier die Ladezeiten minimiert werden. Die Notwendigkeit solch einer Struktur wurde bei der Entwicklung des X-Tree erkannt. Diese Funktion sollte von einem sogenannten Blockmanager erfüllt werden. Dieser speicher Datenblöcke persistent (nicht zwangsläufig in einer Datei). Dabei sind die Datenblöcke unabhängig von der Baumstruktur.

Aufgabenstellung

Der Blockmanager sollte einfach, klein und performant sein. Folgende Operationen sollen unterstüzt werden:
getBlock(long blockId)
getNewBlock()
updateBlock()
deleteBlock(long blockId)
Als Datensenke für die Blockstrukturen soll das Dateisystem benutzt werden.

Tools

Personen

Bearbeiter Romeo Palijan
Betreuer Stefan Schönauer

Ergebnis

Es wurde eine Klassenbibliothek erstellt, mit dem man einen Blockmanager instantiieren und benutzen kann. Die Bibliothek ist durchgehend auf Interfaces aufgebaut. Mitgeliefert werden 2 Blockmanagerimplementierungen. Eine Standardversion sowie eine Version mit integriertem Cache (LIFO).
Die Klassenbibliothek ist sehr flexibel aufgebaut. Man kann bsw. die Blockgröße während der Laufzeit ändern. Erweiterungen der Blockmanager sind relativ einfach. Selbst die Datenstruktur für die Blöcke kann man einfach austauschen, sollte man da kompliziertere Versionen benötigen.
Das Laufzeitverhalten ist linear.




Homepages:  homeDBS homeInstitut homeLMU
1.1.2000 Stefan Schönauer