Polyglotte Persistenz in UBstore (Bachelor Thesis, Finished)
Author
Mirco Spindler
Description
Die Speicherung von Daten in der Cloud gewinnt immer mehr an Beliebtheit und Verbreitung. Endkunden erwarten, dass ihre Daten ständig von überall aus verfügbar sind und zuverlässig gespeichert werden. Die dabei verarbeiteten Daten unterscheiden sich jedoch genauso stark voneinander wie die Anwendungen, die auf diese Daten zugreifen. Deshalb kommen in der Praxis verschiedene, sowohl verteilte oder auch monolithische Datenbanksysteme zum Einsatz, die auf den jeweiligen Anwendungsfall ausgerichtet sind. Das Departement Mathematik und Informatik der Universität Basel entwickelt das Framework UBstore, welches es erlaubt, verteilte Datenverwaltungssysteme modular zusammenzusetzen. Auf der untersten Ebene, der Persistenzschicht, nutzt UBstore gleichzeitig verschiedene herkömmliche Datenbanksysteme oder Speicherlösungen. Dieses gleichzeitige Benutzen verschiedener Datenverwaltungs-Technologien nennt sich Polyglotte Persistenz. Das Ziel dieser Bachelorarbeit ist es, die bereits existierenden Persistenzmodule von UBstore zusammenzuführen und den effizienten Zugriff auf diese mittels einer Persistenzverwaltung zu implementieren. Das System soll letztendlich fähig sein, zur Laufzeit Persistenzmodule zu erkennen, hinzuzufügen, umzukonfigurieren und zu entfernen. Hierfür sind hauptsächlich zwei Probleme zu lösen. Erstens verfügt das System über keinerlei Wissen darüber, wann ein Modul hinzugefügt oder entfernt werden wird. Deshalb muss es die Persistenzverwaltung ermöglichen, das Caching- und Speicherverhalten genau zu spezifizieren. Zweitens unterscheiden sich die eingesetzten Datenbanksysteme nicht nur in ihren Datenzugriffs-Sprachen, sondern auch in ihren Paradigmen. So können neben einer relationalen Datenbank auch eine Dokumentendatenbank und ein Key-Value-Store eingesetzt werden. Die jeweiligen Besonderheiten der Datenbanksysteme (z.B. Schema-Umsetzung, Verhalten bei Anlegen von Prepared Statements, Ausführung von Bulk Updates etc.) gilt es zu beachten und im Persistenzmanager entsprechend zu behandeln. Die Bachelorarbeit umfasst die folgenden Elemente: Einarbeitung in UBstore, OSGi und vorhandene Persistenzmodule. Implementierung eines Persistenzmanagermoduls, welches den Betrieb von mindestens drei Persistenzmodulen erlaubt. Das dynamische Hinzufügen und Entfernen ist jederzeit möglich durch Datenmigration zwischen den Modulen. Evaluation der Performanz im Einzel- und im Gemischtbetrieb sowie Erstellung einer Abschlussdemonstration. Optionale Bestandteile der Arbeit: Erweiterung auf den gleichzeitigen Betrieb beliebig vieler Persistenzmodule. Visualisierung mittels einer GUI “UBstore Cockpit”, welche graphisch die Kontrolle und Steuerung des Persistenzmanagers erlaubt. Diese liefert detaillierte Informationen über die darunterliegenden Datenbanksysteme und ermöglicht die Steuerung des Managers auf intuitive Art und Weise. Performanzverbesserungen des Caching, u.a. durch Anpassung der Handhabungsstrategien der einzelnen Persistenzmodule.
Start / End Dates
2013/10/21 - 2014/02/20