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:
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.