Lazy Migration

Werbung
ThemafüreineMasterarbeit:OptimierungderDatenmigrationin
NoSQL‐DatenbankenmitderStrategy:LazyMigration
LazyMigrationfürBigDataAnwendungen
Im Mittelpunkt dieser Masterarbeit steht die Aktualisierung von NoSQL‐Datenbanken, die Überführung eines Datenbestandes in eine neue Version. Dazu soll eine Übersetzung von Operationen einer Evolutionssprache (die deklarativ die Änderungen beschreibt, Beispiel: „copy Person.Wohnort to Student where Person.ID= Student.ID“) in ausführbare datalog‐Regeln erfolgen und eine möglichst weitgehende Optimierung erfolgen. MotivationdesThemas:
Das Überführen eines Datenbestandes in eine neue Version ist in allen Anwendungen, die verwendet werden, von Zeit zu Zeit notwendig. In einigen Anwendungen passiert eine solche Versionsänderung nach Monaten oder Jahren, in agilen Anwendungen sind die Entwicklungszyklen deutlich kürzer, damit auch Änderungen an den gespeicherten Daten häufiger. In relationalen Datenbanken gibt es eine Sprache für die Durchführung von Datenbankevolutionen („alter table …“). In NoSQL‐Systemen sind die Daten schemalos, es existiert nur ein implizites Schema (über die Property‐Namen in JSON Dokumenten). Eine Besonderheit hier ist, dass die gespeicherte Datenmenge sehr groß sein kann und verteilt vorliegen kann, sodass eine Umstellung „in einem Schritt“ nicht möglich ist. Aus diesen Voraussetzungen heraus wurde die Strategie „Lazy migration“ entwickelt, diese bedeutet, dass die Datenmigration erst dann erfolgt, wenn die Daten in der Anwendung benötigt werden. Damit können also Datensätze in verschiedenen Versionen zeitgleich in der NoSQL‐Datenbank liegen, zusätzlich müssen Migrationsscripte bereitstehen, die die Übersetzung in eine aktuellere Version realisieren können. Solche Migrationsscripte können mit datalog beschrieben werden. Erfolgt das Aktualisieren über etliche Versionen hinweg in einem Schritt, so kann eine Zusammenfassung der Updateoperationen in den Migrationsscripten erfolgen. Dazu sind Regeln zu erstellen und zu validieren, die diese Zusammenfassung (verlustfrei) durchführen. Aufgabe:
Im Rahmen dieser Masterarbeit soll dafür folgende Aufgabe gelöst werden. 1. Probleme und Besonderheiten bei lazy migration untersuchen 2. Entwicklung einer Komponente, die die vorhandene Evolutionssprache parst, die Schemainformationen (JSON Schema) verwendet und datalog‐Regeln für die lazy migration generiert. 3. Entwicklung von Regeln zur Zusammenfassung von Evolutionsschritten (auf Ebene der Schemaevolutionsoperationen), prototypische Implementierung 4. Test der generierten Ergebnisse an einem geeigneten Beispiel, als Testumgebung steht der IRIS Reasoner (http://iris‐reasoner.org/demo) zur Verfügung. Projekt:
Die Masterarbeit ordnet sich in die Arbeiten zu „Schema‐Management für NoSQL‐Datenbanken“ ein, die seit 2013 zusammen mit der Hochschule Darmstadt und der OTH Regensburg durchgeführt werden. 
Herunterladen