<!DOCTYPE article PUBLIC "-//NLM//DTD JATS (Z39.96) Journal Archiving and Interchange DTD v1.0 20120330//EN" "JATS-archivearticle1.dtd">
<article xmlns:xlink="http://www.w3.org/1999/xlink">
  <front>
    <journal-meta />
    <article-meta>
      <title-group>
        <article-title>Data evolution and migration strategies for NoSQL databases</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Mark Lukas Möller Institut für Informatik</string-name>
          <email>mark.moeller2@uni-rostock.de</email>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Universität Rostock</institution>
        </aff>
      </contrib-group>
      <pub-date>
        <year>2018</year>
      </pub-date>
      <abstract>
        <p>This article presents various data migration strategies for NoSQL databases, especially for document stores, and evaluates them in term of their e ciency. Some strategies do not execute the migration operation immediately but migrate the data on-demand (lazy and hybrid migration). The di erent migration strategies are classi ed with the use of four dimensions and will be compared to each other. The overall aim of the project is the development of an advisor which proposes an optimal migration strategy based on metrics. Various optimization goals are to be taken into account. The project Darwin is presented, which is implementing the techniques described in this article.</p>
      </abstract>
    </article-meta>
  </front>
  <body>
    <sec id="sec-1">
      <title>-</title>
      <p>Mark Lukas Möller
Institut für Informatik</p>
      <p>Universität Rostock
mark.moeller2@uni-rostock.de</p>
    </sec>
    <sec id="sec-2">
      <title>KURZFASSUNG</title>
      <p>Die dauerhafte Verfugbarkeit von Daten stellt eine der
Kernanforderungen an NoSQL-Datenbanksysteme dar.</p>
      <p>In diesem Artikel werden verschiedene
Datenmigrationsstrategien im Kontext von NoSQL-Datenbanken,
insbesondere fur Document Stores, vorgestellt und hinsichtlich
ihrer E zienz und ihres Einsatzspektrums bewertet. Dabei
werden Strategien vorgestellt, die die Migrationsoperation
nicht sofort ausfuhren, sondern die Daten on-demand
migrieren (Lazy Migration). Die Migrationsvarianten werden
anhand von vier Dimensionen der Datenmigration von
NoSQLDatenbanken verglichen und bewertet. Ziel ist es, einen
Advisor zu entwickeln, der auf Basis von Metriken eine
optimale Migrationsstrategie vorschlagt. Dabei sollen verschiedene
Optimierungsziele berucksichtigt werden. Das Projekt
Darwin wird vorgestellt, in dem die in diesem Artikel genannten
Techniken implementiert werden sollen.</p>
    </sec>
    <sec id="sec-3">
      <title>Stichworte</title>
      <p>NoSQL, Datenmigration, Datenevolution, Advisor,
Kostenmodelle, Metriken</p>
      <p>Software unterliegt wahrend ihres Entwicklungs- und
Lebenszyklus nicht nur A nderungen in ihrer Logik, sondern
auch A nderungen in der Persistenzschicht von Daten.
Haug kommen zur dauerhaften Speicherung von Daten
Datenbankmanagementsysteme (DBMS) zum Einsatz, die fur
den operationalen oder den analytischen Einsatz optimiert
sind. Datenbanken und Relationen in DBMS haben
ublicherweise wahrend ihrer Laufzeit ein de niertes Schema,
das wahrend der Laufzeit der Datenbank moglichst
unverandert bleibt. Zwar unterstutzen DBMS schemamodi
zierende Operationen wie das Hinzufugen, Umbenennen oder
Loschen einer Spalte, komplexe Evolutions- und
Migrationsoperationen wie das Verschieben oder Kopieren eines
Attributes einer Tabelle zu einer anderen Tabelle werden
dagegen nur marginal unterstutzt, indem die Schemamodi
kation und die Migration der Daten durch getrennte Schritte
und durch Ausformulierung der Anfragen durch den
Datenbankadministrator erfolgt.</p>
      <p>
        In der Softwareentwicklung mit einem
Entwicklungsparadigma wie der agilen Anwendungsentwicklung ist es ublich,
dass bereits entwickelte Programmteile uberarbeitet werden
[
        <xref ref-type="bibr" rid="ref12">12</xref>
        ]. Jim Highsmith beschrieb Agilitat mit "Deliver
quickly. Change quickly. Change often\ [
        <xref ref-type="bibr" rid="ref2">2</xref>
        ]. Entsprechend andern
sich auch die Strukturen auf der Persistenzebene fur
Daten, bei der hau g relationale DBMS eingesetzt werden. Bei
A nderungen auf dieser Ebene muss das Datenschema
entsprechend evolutioniert und die Daten migriert werden [
        <xref ref-type="bibr" rid="ref12">12</xref>
        ].
      </p>
      <p>Fur die Realisierung einer e zienten Migration, sind
Operationen notwendig, die Schemaevolutionen berucksichtigen.
Daten bei jeder Schemaanderung direkt zu migrieren
funktioniert, wird aber bei einer Vielzahl an
Schemaanderungsoperationen und bei hohem Datenvolumen sehr teuer.
Insbesondere wenn laufende Software mit vielen Daten in einer
Datenbank durch eine neue Software ersetzt werden soll, die
grundlegende A nderungen am Schema durchfuhrt, sollen
efziente Operationen sicherstellen, dass keine oder nur
eine minimale Ausfallzeit durch blockierende
Migrationsoperationen eintritt.</p>
      <p>
        Im Rahmen dieses Artikels wird vorgestellt, wie sich
einzelne Migrationsoperationen realisieren lassen. Dabei
werden als Datenbanksysteme insbesondere
NoSQL-DocumentStores wie MongoDB verwendet, da diese im Gegensatz zu
relationalen Datenbanken die fur die Migration
notwendige Schema exibilitat bieten und daher bei der Losung der
genannten Probleme unterstutzen. Es werden die vier
Dimensionen der Migrationszeit, der Art der
Operationsausfuhrung, der Datenmenge und des Migrationsortes aus [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]
verwendet, Migrationsstrategien im Rahmen dieser
Dimension erlautert und bewertet. Es wird das Rahmenprojekt
Darwin vorgestellt, in welchem Migrationsoperationen auf
NoSQL-Datenbanken implementiert werden.
      </p>
      <p>Langfristiges Ziel ist die Entwicklung eines Advisors fur
Darwin, der anhand von Informationen uber das System
automatisiert die gunstigste Migrationsstrategie vorschlagt.
Die Grundlagen des Advisors, welche Informationen dafur
notwendig sind und welche Strategie als die Gunstigste gilt,
wird erlautert.
2.</p>
    </sec>
    <sec id="sec-4">
      <title>GRUNDLAGEN VON NOSQL-STORES</title>
      <p>
        Zunachst werden grundlegende Konzepte von
NoSQLDatenbanken eingefuhrt und mit relationalen Datenbanken
(RDBMS) verglichen. Nachfolgend wird das Datenmodell im
Kontext von Document Stores vorgestellt, da diese
hauptAbbildung 1: Aufbau von NoSQL-Datenbanken
sachlich im Rahmen des Artikels und der
Forschungsfragestellung verwendet werden. NoSQL-Datenbanken zeichnen
sich im Allgemeinen und im Gegensatz zu RDBMS durch
eine Schemalosigkeit aus, sodass Daten ohne vorher de niertes
Schema exibel gespeichert werden konnen [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].1
Schemainformationen stecken implizit in den Daten und konnen durch
Schemaextraktion ermittelt werden.
      </p>
      <p>
        Datenobjekte in NoSQL-Datenbanken hei en Entitaten
und sind mit einem Tupel in einer RDBMS-Tabelle
vergleichbar. Entitaten bestehen aus Properties, die aus einem
Property-Name und einer Property-Value bestehen und eine
Analogie zu Attributnamen und Attributwerten darstellen
[
        <xref ref-type="bibr" rid="ref10">10</xref>
        ]. Im Gegensatz zur relationalen Speicherungsvariante2
konnen die Values von Properties skalar oder mehrwertig
(z.B. als Array) auftreten oder sogar andere Entitaten
beinhalten (vgl. [
        <xref ref-type="bibr" rid="ref6">6</xref>
        ]). Entitaten mit dem gleichen inpliziten
Schema gehoren zu einem Kind (dt. Art), welches mit einer
Tabelle in einem RDBMS vergleichbar ist und konnen einen
Schlussel besitzen. Der Schlussel ist eindeutig und besteht
aus einem Tupel, das einerseits den Namen des Kinds und
andererseits eine ID enthalt. Die konzeptionellen
Bestandteile von NoSQL-Stores sind in Abb. 1 visualisiert.
      </p>
    </sec>
    <sec id="sec-5">
      <title>EVOLUTIONSOPERATIONEN</title>
      <p>Der Migration von Daten geht die Evolution des Schemas
voraus: Wahrend bei der Evolution das Schema der
Speicherung verandert wird, werden die gespeicherten Daten bei der
Migration vom alten Schema in das neue Schema uberfuhrt.</p>
      <p>
        Es werden funf grundlegende Evolutionsoperationen
vorgestellt, die in NoSQL-Datenbanken auf Entitaten bzw.
deren Kinds angewendet werden konnen. Dabei sind
SingleEntity-Operationen von Multi-Entity-Operationen zu
unterscheiden, die in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] eingefuhrt wurden. Erstere arbeiten auf
1Dies ist der allgemeine Fall fur NoSQL-Datenbanken.
Einige wenige Systeme wie Cassandra benotigen dennoch
Schemainformationen [
        <xref ref-type="bibr" rid="ref8">8</xref>
        ].
2Unter Voraussetzung der Einhaltung der ersten
Normalform.
den Entities eines Kinds und existieren auch im Kontext von
RDBMS (z.B. Add Column). Letztere arbeiten auf mehreren
Entities und existieren im Kontext von RDBMS nicht.
      </p>
      <p>
        Als Single-Entity-Operationen stehen nach [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] Add,
Delete und Rename zur Verfugung. Add A.x = default fugt zu
allen Entitaten des Kinds A ein Property mit dem
PropertyNamen x und einem Defaultwert hinzu. Delete A.x
entfernt dieses Property analog. Rename A.x To z benennt den
Property-Namen aller Entitaten uber dem Kind A von x in
z um [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] .
      </p>
      <p>
        Neben den drei Single-Entity-Operationen existieren die
beiden Multi-Entity-Operationen Move und Copy. Erstere
Operation erlaubt es, unter Angabe einer Bedingung ein
Attribut von Entities eines Kinds zu Entities eines
anderen Kinds zu verschieben. Mit Move A.x to B Where Cond
wird so das Property x von allen Entitaten des Kinds A
zu den Entitaten des Kinds B verschoben, bei denen die
Bedingung Cond (Verbundattribute) zutri t. Copy
unterscheidet sich von Move dadurch, dass die Properties von
den Entitaten der Quellseite (hier: Kind A) nicht entfernt
werden. Beispielhaft beschreibt Copy Student.degree To
Hiwi.degree Where Student.matrikel = Hiwi.matrikel
eine Kopieroperation, bei dem die Property mit dem
bisherigen Abschluss eines Studierenden von der Entitat Student
zur Entitat Hiwi kopiert und anhand der Matrikelnummer
gematched wird. Die Informationen zur Matrikelnummer
sind nach der Migrationsoperation weiterhin in der Entitat
Student vorhanden [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ].
4.
      </p>
    </sec>
    <sec id="sec-6">
      <title>DIMENSIONEN DER MIGRATION</title>
      <p>
        Zur Klassi kation von Migrationsstrategien werden die
vier verschiedenen Dimensionen nach [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] { Migrationszeit,
Operationskonsolidierung, Datenmenge und Migrationsort {
eingefuhrt und erlautert. Diese Dimensionen ermoglichen es,
die Unterschiede zwischen den Migrationsstrategien im
Anschluss zu verdeutlichen.
4.1
      </p>
    </sec>
    <sec id="sec-7">
      <title>Migrationszeit</title>
      <p>Die Dimension der Migrationszeit de niert, wann ein
Entity migriert wird. Der triviale Ansatz ist die sofortige
Durchfuhrung der Migration, sobald eine Operation zur Evolution
des Schemas angewendet wird. Dieser Ansatz wird als Eager
Migration bezeichnet. Hierbei werden mit der A nderung des
Schemas zeitgleich auch die dem Schema zugrundeliegenden
Daten angepasst. Dies ist auch die Art der Migration, die
auch in RDBMS vorherrscht.</p>
      <p>Als Gegenstuck zur Eager Migration existiert die Lazy
Migration. Bei der Lazy Migration wird nach einer Operation
zur Schemaanderung die Migration nicht sofort ausgefuhrt,
sondern erst dann, wenn zu einem spateren Zeitpunkt auf
das von der Evolution betro ene Entity zugegri en wird.
Dies ermoglicht die Optimierung durch die Konsolidierung
von mehreren, hintereinander ausgefuhrten
Migrationsoperationen. Wird etwa ein Add A.x = default ausgefuhrt,
gefolgt von einem Delete A.x, so heben sich beide
Operationen auf, sodass keine Migrationsoperation durchgefuhrt
werden muss. Der Zeitpunkt der Migration kann nach
unterschiedlichen Kriterien festgelegt sein, erfolgt aber spatestens
beim Zugri auf das Entity.</p>
      <p>Zwischen den beiden Extrema\ der Eager Migration und
"
der Lazy Migration lassen sich weitere Varianten { die
Predictive Migration (s. Abschnitt 5.4) und die Incremental
Migration (s. Abschnitt 5.5) { einordnen.</p>
      <p>Die Predictive Migration versucht anhand von
Statistiken oder Heuristiken die von einer Migrationsoperation
betro enen Entitaten zu bestimmen, auf die mit einer hohen
Wahrscheinlichkeit in naher Zukunft zugegri en wird ("Hot
Data\ ) und migriert diese sofort. Die restlichen
Datensatze ("Cold Data\ ) werden zu einem spateren Zeitpunkt lazy
migriert.</p>
      <p>Die Incremental Migration migriert die Daten dann, wenn
diese einen de nierten Veralterungshorizont erreicht haben.
Liegen Entitaten etwa 5 Evolutionsoperationen zuruck,
werden diese migriert, auch wenn sie als Cold Data gelten.
4.2</p>
    </sec>
    <sec id="sec-8">
      <title>Operationskonsolidierung</title>
      <p>
        Die zweite zu betrachtende Dimension ist die
Konsolidierung von Operationen. Operationen konnen einerseits
schrittweise ausgefuhrt werden, d.h. bei mehreren
hintereinander folgenden Operationen wird nicht versucht, eine
Optimierung (in Form einer Zusammenfassung) der Operationen
zu erreichen (vgl. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). Alle Operationen werden Schritt fur
Schritt nacheinander angewendet.
      </p>
      <p>
        Das Gegenstuck zur schrittweisen Ausfuhrung ist die
konsolidierte Ausfuhrung, bei der versucht wird, Operationen
soweit wie moglich zusammenzufassen. Die Konsolidierung
moglicher Operationen wurde in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] bereits de niert.
      </p>
      <p>In Abb. 2 sei die aktuelle Version Et;5. Um von der
vorherigen Version Et;4 auf diese Version zu kommen, ist nur eine
Migrations- und Evolutionsoperation notig. Bei allen
anderen Versionen wird eine konsolidierte Migration dargestellt:
Um von der Version 1, in der Et;1 liegt, auf die aktuellste
Version zu kommen, sind die Evolutions- und
Migrationsoperationen der Schritte 2{5 zusammenzufassen. Ohne den
Umweg uber die schrittweise Migration in die Versionen 2,
3 und 4 wird direkt in die neuste Version 5 migriert.
4.3</p>
    </sec>
    <sec id="sec-9">
      <title>Datenmenge</title>
      <p>Als dritte Dimension gilt die Datenmenge, die de niert,
welcher Datenbestand migriert wird. Wird zum Beispiel bei
einer move Operation ein Property x von A nach B
verschoben, so gilt fur den Fall der Lazy Migration, dass vorerst
keine Migrationsoperation durchgefuhrt wird. Wird auf x in
B zugegri en, muss die Migration mindestens von B
durchgefuhrt werden. An dieser Stelle existieren nun zwei Varianten:
Entweder werden nur alle Entitaten des Kinds B migriert,
da nur auf B ein schreibender Zugri erfolgt, oder es werden
auch (transitiv) betro ene Entitaten migriert, in diesem Fall
alle Entitaten des Kinds A. Bei nicht-transitiver Migration
wurden die Werte von x in A erst dann entferntx werden,
wenn ein Zugri auf A erfolgt.
4.4</p>
    </sec>
    <sec id="sec-10">
      <title>Migrationsort</title>
      <p>Durch die letzte Dimension wird de niert, an welcher
Stelle die Migration statt ndet. Die Migration der Daten wird
entweder im NoSQL-Store selbst oder auf hoherer Ebene,
z.B. mithilfe einer Middleware, durchgefuhrt.</p>
    </sec>
    <sec id="sec-11">
      <title>MIGRATIONSSTRATEGIEN</title>
      <p>
        Nachfolgend werden funf Migrationsstrategien nach [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]
vorgestellt. Neben der bereits erwahnten Eager Migration
und Lazy Migration wird auch die Predictive Migration und
die Incremental Migration tiefergehend vorgestellt. Die Lazy
Migration wird in Lazy Composite Migration und Lazy
Stepwise Migration untergliedert und vorgestellt.
      </p>
      <p>
        Abbildung 2: Evolution eines Schemas uber funf
Versionen (entnommen aus [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ])
      </p>
      <p>Die Auswahl der konkreten Strategie fur die Migration
ist letztendlich Aufgabe eines Advisors. Innerhalb eines
Systems ist es moglich, dass fur die Migration gleicher oder
verschiedener Entitaten unterschiedliche Migrationsstrategien
angewendet werden.
5.1</p>
    </sec>
    <sec id="sec-12">
      <title>Eager Migration</title>
      <p>
        Die Strategie der Eager Migration spiegelt den klassischen
Migrationsansatz wider, bei welcher Daten nach einer A
nderung auf Schemaebene sofort migriert werden. Mehrere
Evolutionsoperationen werden nicht gesammelt und
gegebenenfalls optimiert ausgefuhrt, sondern sofortig
nacheinander umgesetzt. Eine Konsolidierung der Operationen
ndet nicht statt. Bei der Eager Migration werden aus Sicht
der Dimension der Datenmenge alle Daten migriert, d.h. bei
Multi-Entity-Operationen sowohl Quell- als auch Zielseite
(vgl. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]).
      </p>
      <p>Die Eager Migration kann als Migrationsstrategie in
verschiedenen Szenarien genutzt werden. Nutzlich ist sie in
Fallen, in denen man nur sehr wenig Daten in der
NoSQLDatenbank gespeichert hat. Dabei migriert sie Daten in die
neue Version, ohne relevante Ausfallzeiten durch Lese- und
Schreiboperationen zu erzeugen. Weiterhin eignet sich die
Eager Migration auch fur die Migration von gro en
Datensatzen, wenn auf die zu migrierenden Daten nur sehr selten
zugegri en wird. Ist zu erwarten, dass wahrend der
Ausfallzeit durch die Migration auf die zu migrierenden Entitaten
keine Lese- oder Schreiboperation angewendet wird, ist die
Strategie anwendbar.
5.2</p>
    </sec>
    <sec id="sec-13">
      <title>Lazy Stepwise</title>
      <p>
        Die Lazy Stepwise Migration ist bezogen auf die zeitliche
Dimension das andere Extremum im Vergleich zur Eager
Migration. Schemaevolutionen werden nicht direkt ausgefuhrt,
sondern erst beim Zugri auf die betro enen Entitaten (vgl.
[
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]). Aus Sicht der Datenmenge werden nur die Entitaten
migriert, auf die zugegri en wird, nicht aber transitiv
betro ene Entitaten.
      </p>
      <p>Die Lazy Stepwise Migration evaluiert alle
Migrationsoperationen einzeln. Wird zu den Entitaten eines Kinds A mit
der Add A.x = default Operation das Property mit dem
Namen x hinzugefugt und im nachsten Evolutionsschritt mit
Delete A.x wieder entfernt, so wird, wenn auf ein Entity des
Kinds A zugegri en wird, wahrend der Migration das
Property hinzugefugt und wieder entfernt. Eine Erkennung, dass
sich diese Operationen gegenseitig aufheben, ndet nicht
statt.</p>
      <p>Die Strategien der Lazy Migration { sowohl Lazy
Stepwise als auch Lazy Composite { eignen sich fur gro e
Datenmengen, bei denen eine Eager Migration teuer und das
System durch die Migrationsoperation nicht erreichbar
ware. Weiterhin eignen sie sich fur die Falle, wenn sehr viele
Schemaevolutionsoperationen ausfuhrt werden, etwa in der
agilen Anwendungsentwicklung, bei der Daten in einer eager
Variante in Schemaversionen uberfuhrt werden wurden, in
denen nie ein Zugri auf die Entitaten erfolgt.</p>
      <p>Bei der Lazy Migration muss insbesondere die
Performance zur Laufzeit beachtet werden, da eine
Leseoperationen strategiebedingt teure Schreiboperationen verursachen
kann. Diese geschehen fur den Nutzer transparent, sodass im
Gegensatz zur Eager Migration die Performance beim Lesen
von Daten deutlich schlechter abschatzbar ist.
5.3</p>
    </sec>
    <sec id="sec-14">
      <title>Lazy Composite</title>
      <p>Die Lazy Composite Migration ist eine alternative
Strategie zur Lazy Stepwise Migration. Grundlegend arbeitet sie
nach dem gleichen Prinzip, ermoglicht aber die
Konsolidierung von Operationen und optimiert den Migrationsprozess
uber mehrere Versionen hinweg entsprechend.</p>
      <p>
        Die Konsolidierung der Operationen wurde im
Rahmenprojekt Darwin bereits in [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ] untersucht. Wesentliche
Erkenntnis war mitunter, dass sich viele der funf genannten
Operationen konsolidieren lassen, allerdings nicht alle.
Eine Add Operation, gefolgt von einer Copy Operation kann
beispielsweise nicht zusammengefasst werden. Entsprechend
werden bei der Lazy Composite Migration die Operationen
so weit wie moglich zu einer minimalen Anzahl an
Operationen konsolidiert und diese dann schrittweise ausgefuhrt.
5.4
      </p>
    </sec>
    <sec id="sec-15">
      <title>Predictive Migration</title>
      <p>
        Die Predictive Migration ist eine Strategie, die
statistische Informationen uber die gespeicherten Entitaten nutzt.
Sie gliedert die gespeichterten Daten in Daten, die hau g
genutzt werden (Hot Data) und Daten, die vergleichsweise
selten genutzt werden (Cold Data). Die Unterscheidung
geschieht dabei primar auf Entitatsebene, d.h. einige Entitaten
eines Kinds gelten als Hot Data, wahrend andere Entitaten
desselben Kinds als Cold Data gelten. Bei Ausfuhrung
einer Migrationsoperation wird Hot Data eager migriert,
wahrend Cold Data lazy migriert wird. Wahrend bei Hot Data
hinsichtlich der Datenmenge alles migriert wird, werden bei
Cold Data nur die tatsachlich betro enen Entitaten beim
Zugri migriert (vgl. [
        <xref ref-type="bibr" rid="ref9">9</xref>
        ]).
      </p>
      <p>Als Anwendungsfall konnen Systeme betrachtet werden,
bei denen uberwiegend die neusten Datensatze hohe
Relevanz haben, wie soziale Netzwerke oder Aggregationsdienste
fur Nachrichten. Hier gelten Beitrage, die innerhalb der
letzten Stunden erstellt worden sind, als hochgradig relevant.
Solche Datensatze wurden sofort migriert werden, wahrend
die von Beitragen, die vor einer Woche erstellt wurden, schon
als weitgehend unrelevant gelten.</p>
      <p>
        Fur die Klassi zierung der Daten in Hot Data und Cold
Data ist ein Advisorsystem notwendig. Je nach Strategie
kann dieses System Vorschlage aufgrund von statistischen
oder heuristischen Daten unterbreiten. Denkbar sind
Parameter wie die Anzahl der Zugri e in einer bestimmten
Zeitspanne oder Informationen uber die Entitaten, auf die
zuletzt zugegri en wurde. A hnliche Strategien nutzen z.B.
Caches, die Last Recently Used (LRU) Techniken anwenden
(vgl. [
        <xref ref-type="bibr" rid="ref11">11</xref>
        ]). Die Aufgabe des Advisors soll es auch sein, zu
entscheiden, wieviele Daten als Hot Data und Cold Data
gelten, damit keine oder nur geringfugige Ausfallzeiten durch
die Eager Migration entstehen.
      </p>
      <p>Die Predictive Migration nutzt Heuristiken, um
vorauszusagen, ob die Eager Migration eines Entitys sinnvoll ist.
Da es sich hierbei um Schatzungen handelt, kann es sein,
dass die Predictive Migration Entitaten aus dem Cold
Data Bereich migriert ( False Positive\ ) oder Entitaten aus
"
dem Hot Data Bereich nicht migriert ( False Negative\ ).
"
Im Falle eines False Negative wird auf das Entity in naher
Zukunft zugegri en und dieses migriert. Bei einem Zugri
auf das Entity erhoht sich durch die ausstehende Migration
also die Zeit der Abfrage. Im Falle eines False Positives wird
ein Tupel migriert, auf das lange Zeit nicht zugegri en
wurde. Dadurch erhoht sich die Migrationszeit der Predictive
Migration, stellt daruber hinaus aber kein Problem dar.</p>
      <p>Zum Schluss soll eine begri iche Abgrenzung der
Predictive Migration erfolgen. Die Strategie bewegt sich zeitlich
immer zwischen einer Eager Migration und einer Lazy
Migration. Niemals sagt sie eine mogliche Schemaanderung
voraus, die zeitlich vor einer moglichen Eager Migration
stattndet. Entsprechend ist auch an keiner Stelle eine
RuckMigration aufgrund falsch migrierter Entitaten notwendig.
5.5</p>
    </sec>
    <sec id="sec-16">
      <title>Incremental Migration</title>
      <p>Der Ansatz der Incremental Migration besteht darin, die
Migration prinziell lazy durchzufuhren. Es erfolgt keine
sofortige Migration, wenn eine Operation zur
Schemaevolution angewendet wird, sondern beispielsweise dann, wenn ein
Entity um n Versionen zuruckliegt\, also bereits n
Schema"
evolutionsoperationen auf ein Entity angenwendet wurden,
ohne, dass eine Migration stattfand.</p>
      <p>Die Incremental Migration kann auch dazu dienen, andere
Migrationsstrategien zu unterstutzen, indem sie parallel
ausgefuhrt wird. Sie kann z.B. Migrationen von Entitaten
alterer Versionen im Hintergrund durchfuhren, wenn die
Datenbank nicht ausgelastet ist. Sie hilft, dass die
Migrationsoperationen nicht zu komplex und damit teuer werden, indem
sie eine Grenze fur die maximale Veralterung de niert.</p>
      <p>Operationen konnen gegebenfalls konsolidiert werden, da
es sich im Grundsatz um eine Lazy Migration handelt.
Aus Sicht der Dimension der Datenmenge werden nicht
alle (transitiv) betro enen Daten migriert, es sei denn, diese
liegen auch die festgelegte Anzahl an Versionen zuruck.</p>
      <p>Sowohl die Predictive Migration als auch Incremental
Migration lassen sich weder als vollstandig eager noch
vollstandig lazy klassi zieren. Beide Strategien lassen sich daher bei
der hybriden Migration ansiedeln.
5.6</p>
    </sec>
    <sec id="sec-17">
      <title>Alternative zur Migration</title>
      <p>Bisher wurde de niert, dass Entities nach verschiedenen
Strategien, spatestens aber beim Zugri migriert werden.
Als Alternative zur Migration ist Query Rewriting denkbar.
Daten unterliegen dabei auch nach Anwendung einer
Evolutionsoperation immer ihrem Ursprungsschema.
Voraussetzung dafur ist, dass sich Evolutionsoperationen umkehren
lassen, damit eine informationsverlustfreie Ruckabbildung
ndbar ist. Wird z.B. die Evolutionsoperation Rename A.x
to z ausgefuhrt, muss fur die Ruckabbildung die Anfrage zu
Rename A.z T o x umgeschrieben werden, da die Entitaten
noch in der Version vorliegen, in der das Property mit dem
Namen x vorkommt. Zur Anwendungsschicht hin muss der
Name des Property x dann durch z substituiert werden.</p>
      <p>Es muss noch untersucht werden, wie performant sich
das Query Rewriting ausfuhren lasst. Findet eine Vielzahl
an Evolutionsoperationen statt, steigt die Komplexitat der
Ruckabbildung. Um die dadurch entstehenden
Performanceeinbu en zu vermeiden, kann sich die Kombination mit der
Predictive Migration eignen.</p>
      <p>Anwendungsszenario fur das Query Rewriting kann die
Nutzung von Datenbanken sein, die in einem bestimmten
Zeitfenster stark frequentiert genutzt werden.
Beispielsweise kann dies die Datenbank eines Einzelhandels sein, aus der
die Kassen tagsuber fur jedes gescannte Produkt die
Preise auslesen. Wurde hier eine Migration zur kurz- oder
mittelfristigen Nichterreichbarkeit der Datenbank fuhren, ware
dies geschaftsschadigend. Hier ware moglich, die Entitaten
in der alten Version zu belassen, erst nach Geschaftsschluss
zu migrieren und bis dahin die Anfragen umzuschreiben.</p>
    </sec>
    <sec id="sec-18">
      <title>WAHL DER MIGRATIONSSTRATEGIE</title>
      <p>Die im vorherigen Abschnitt genannten
Migrationsstrategien sollen in einem System, welches die Migration
unterstutzt, automatisiert angewendet werden. Im Regelfall soll
der Anwender nicht vorgeben mussen, welche Strategie zur
Migration von Daten angewendet wird, sondern die Auswahl
wird durch einen Migrationsadvisor entschieden. Der
Advisor ist eine Softwarekomponente, die Informationen uber das
System nutzt und die beste Migrationsstrategie vorschlagt.
Dabei konnen etwa statistische, stochastische oder
heuristische Verfahren oder durch den Nutzer vorkon gurierte
Werte und Gewichte zur Anwendung kommen. Ebenso soll der
Nutzer vorkon guierte Werte und deren Gewichtung de
nieren konnen, wobei diese Moglichkeit nur zum "tuning\ des
Advisors dient und im Allgemeinen nicht notwendig sein soll.</p>
      <p>Was genau als "beste\ Strategie gilt und welche
Faktoren konkret zur Findung einer solcher herangezogen werden,
hangt vom Ziel der Optimierung und von der Umgebung,
in der die Datenbank liegt, ab. Als Ziel kann beispielsweise
die Findung der monetar kostengunstigsten Strategie unter
Inkaufnahme eines moglichen E zienzverlustes sein, etwa,
wenn die NoSQL-Datenbank in einer O -Premises
Umgebung liegt (PaaS /IaaS -Dienste). Alternativ kann das Ziel
die Suche nach der e zientesten Migrationsstrategie sein,
etwa dann, wenn monetare Kosten nicht die primare
Rolle spielen. Dies kann beispielweise in On-Premises
Umgebungen der Fall sein, wenn die NoSQL-Datenbank also auf
eigenen Servern liegt.</p>
      <p>
        In O -Premises Umgebungen ist hau g ein
Geschaftsmodell anzutre en, bei dem Betreiber viele
Parameter abrechnen. Als Beispiel fur eine solche Umgebung
dient etwa der Google Cloud Datastorage, eine
NoSQLDokumentendatenbank von Google [
        <xref ref-type="bibr" rid="ref5">5</xref>
        ]. Abgerechnet werden
neben der Anzahl an Abfragen und der Datenmenge auch
Parameter wie die Anzahl der gelesenen, geschriebenen und
geloschten Entitaten [
        <xref ref-type="bibr" rid="ref4">4</xref>
        ]. Amazon AWS berechnet fur die
Nutzung der NoSQL-Datenbank DynamoDB die
monatlichen Kosten auf Basis gelesener und geschriebener Daten
[
        <xref ref-type="bibr" rid="ref1">1</xref>
        ]. Zur monetaren Optimierung bietet sich daher an, die
Anzahl der Migrationsoperationen gering zu halten. Der
Advisor kann versuchen, Strategien wie die Eager Migration
au en vor zu lassen, die Migrationsoperationen zu
konsolidieren und lazy auszufuhren. Auf mogliche Migrationen,
z.B. im Hintergrund bei niedriger Prozessorauslastung, ist
zu verzichten, da diese bei genanntem Geschaftsmodell
Kosten verursachen kann. Ebenso kann relevant sein, ob
es sich von den Kosten, sowohl monetarerweise als auch
hinsichtlich E zienz, lohnt, die Daten zu migrieren, oder ob
Query Rewriting beim Zugri auf die Daten gunstiger ist.
      </p>
      <p>Bei On-Premises Umgebungen sind andere Faktoren zu
berucksichtigen. Hier soll bereits gekaufte Hardware
weitestgehend ausgenutzt werden, bei der in der Regel keine
Kosten fur Lese- und Schreiboperationen entstehen. Lediglich
Stromkosten mussen fur die eigenen Server bezahlt werden.
dEise bEieteztiensitcehstealszou adne, ndiieere"nb,esstoed\asMs idgrieatDioantsesntrabteeigmie
Zaulsgri schnell in der aktuellsten Version verfugbar sind. Bei
einer unausgelasteten Datenbank sind auch
Migrationsoperationen im Hintergrund denkbar. Als monetarer
Optimierungsfaktor ist bei bestehenden On-Premises Umgebungen
primar der Energieverbrauch zu betrachten.</p>
      <p>Sind statistische Daten uber gespeicherten Entitaten
bekannt, kann hinsichtlich E zienz in der Ausfuhrung der
Migrationsoperationen optimiert werden. Dabei sollen bei jeder
Operation Parameter wie die Anzahl der betro enen
Entitaten oder die Ausfallzeit der NoSQL-Datenbank abgeschatzt
durch Migration werden. Wichtige Kennzahl ist
beispielsweise die Anzahl der gespeicherten Entitaten. Ist nur eine
geringe Anzahl an Entitaten gespeichert, kann es gunstig sein,
Migrationsoperationen ausschlie lich eager auszufuhren. In
so einem Fall soll der Advisor erkennen, dass die Berechnung
der idealen Strategie moglicherweise mehr Zeit in Anspruch
nehmen kann, als das sofortige Migrieren der Daten.</p>
      <p>Ebenfalls kann der Advisor Wissen nutzen, inwiefern zwei
Kinds in einer Wechselbeziehung zueinander stehen. Wird
eine Copy-Operation angewendet, bei der der Advisor wei ,
dass nur eine sehr geringe Zahl an Properties von Entitaten
eines Kinds zu Entitaten eines anderen Kinds kopiert
werden, weil z.B. die Where-Bedingung selten erfullt ist, so ist
dieses Wissen auch zur Optimierung der Operation nutzbar.</p>
      <p>Fur die Advisortechnologie konnen Informationen eine
Rolle spielen, die der Advisor wahrend der Laufzeit sammelt,
wie die Auslastung des Systems zu bestimmten Uhrzeiten.
So kann etwa die Incremental Migration dahingehend
adaptiert werden, dass nicht bei n zuruckliegenden Versionen
migriert wird, sondern etwa zu einer bestimmten Uhrzeit,
zu der dem Advisor bekannt ist, dass die Datenbank fur den
Zeitraum der Migration nicht ausgelastet sein wird. Beispiel
hierfur ware der Einzelhandel, bei der eine komplexe
Evolution und Migration mit moglicher Nichterreichbarkeit der
Datenbank nach Ladenschluss durchgefuhrt werden kann.</p>
      <p>
        Zu Optimierung in unserem Sinne sind kaum
Vorarbeiten im RDBMS und NoSQL-Bereich bekannt. Es gibt
Datenbankoptimierer bzw. -advisor, die jedoch anders
vorgehen, indem sie versuchen, DML-Queries zu vereinfachen und
einen entsprechenden Anfrageplan zu erstellen. In Oracle
Database 12c wurde eine DDL-Optimierung eingefuhrt,
sodass etwa beim Hinzufugen einer Spalte (analog zur
AddOperation) instantan ein Defaultwert ohne Sperren der
Tabelle gesetzt werden kann (vgl.[
        <xref ref-type="bibr" rid="ref7">7</xref>
        ]). Die Optimierung fur
Multi-Entity-Operationen, die e ziente Migration nach dem
Ausfuhren einer Evolutionsoperation und die dafur
notwendige Strategieauswahl wurde aber noch nicht untersucht.
7.
      </p>
    </sec>
    <sec id="sec-19">
      <title>RAHMENPROJEKT</title>
    </sec>
    <sec id="sec-20">
      <title>PROJEKTZIEL</title>
    </sec>
    <sec id="sec-21">
      <title>DARWIN UND</title>
      <p>barIemBDigFDGa-tParoDjaektetn"mNigorSaQtioLn\ScwheirmdadeiveoelutizoienntuenEdvsoklaultiieornund Migration von Daten untersucht. Langfristiges
Projektziel ist die Entwicklung des Tools Darwin, welches
intelligent bei diesen Aufgaben unterstutzt.</p>
      <p>Arbeitet ein Anwender mit einer NoSQL-Datenbank und
dem Darwin-Framework3, kann er uber eine Webober
ache eine Schemaevolution durchfuhren. In Darwin ist
dabei wahlbar, wie die Daten migriert werden sollen (eager
oder lazy, schrittweise oder konsolidiert, etc.). In Darwin
soll ein Advisor implementiert werden, der auf Basis
eines Kostenmodells mit relevanten Metriken einen Vorschlag
zum Verfahren der Migration unterbreitet und automatisiert
ausfuhrt, damit der Schritt entfallt, bei dem der Anwender
selbst eine Entscheidung uber die Migrationsstrategie tre en
muss.</p>
      <p>
        Die Evaluierung der Schemaevolutions- und
Migrationsalgorithmen soll mittels eines Benchmarks erfolgen. Da im
Bereich der NoSQL Schema Evolution noch kein Benchmark
bekannt ist, muss ein eigener Benchmark konzeptioniert und
implementiert werden. Moglicherweise lassen sich Ansatze
des Benchmarkmodells aus [
        <xref ref-type="bibr" rid="ref3">3</xref>
        ] ubernehmen.
      </p>
    </sec>
    <sec id="sec-22">
      <title>ZUSAMMENFASSUNG</title>
      <p>A ndert sich das interne Schema von Entitaten einer
NoSQL-Datenbank durch die Anwendung von
Evolutionsoperationen, mussen dem Schema zugrunde liegende Daten
migriert werden. Neben dem klassischen Weg der Eager
Migration, bei dem alle Daten sofort in das neue Schema
uberfuhrt werden und somit in der aktuellsten Version vorliegen,
wurden vier weitere Migrationsvarianten vorgestellt, bei
denen die Daten weiterhin vorubergehend in der alten Version
vorliegen und zu einem spateren Zeitpunkt migriert werden.
Ziel ist die Optimierung der Migrationsoperationen infolge
hau ger Schemaanderungen durch Techniken wie der
Konsolidierung von Operationen oder der unterschiedlichen
Behandlung hau ger und selten genutzer Daten.</p>
      <p>Fur die Wahl einer Migrationsstrategie wurde die
Nutzung eines Advisor motiviert, der auf Basis von Ma zahlen
eine geeignete Strategie wahlt. Je nach Ziel konnen
monetare Kosten oder die Migrationse zienz optimiert werden.</p>
      <p>Das Projekt Darwin, das bei der Evolution und
Migration von Daten unterstutzen soll, wurde vorgestellt. Ziel ist
die e ziente Implementierung der Migrationsstrategien in
Darwin unter Entwicklung und Nutzung eines
Migrationsadvisors.</p>
    </sec>
    <sec id="sec-23">
      <title>DANKSAGUNG</title>
      <p>Das Projekt "NoSQL Schemaevolution und skalierbare
Big Data Datenmigration\, in welchem die in diesem
Artikel vorgestellte Teilthematik untersucht wird, wird von der
Deutschen Forschungsgemeinschaft (DFG) unter der
Projektnummer 385808805 gefordert.</p>
      <p>Literatur
3https://www.fbi.h-da.de/organisation/
personen/stoerl-uta/projekte/
darwin-schema-management-fuer-nosql-dbms.html</p>
    </sec>
  </body>
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          [1]
          <string-name>
            <surname>Amazon</surname>
          </string-name>
          . Amazon DynamoDB { Preise. online. Zugri :
          <volume>14</volume>
          .
          <fpage>02</fpage>
          .
          <year>2018</year>
          . Feb.
          <year>2018</year>
          . url: https : / / aws . amazon.com/de/dynamodb/pricing/.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          [2]
          <string-name>
            <given-names>David</given-names>
            <surname>Cohen</surname>
          </string-name>
          ,
          <article-title>Mikael Lindvall und Patricia Costa. "An introduction to agile methods\</article-title>
          .
          <source>In: Advances in Computers</source>
          <volume>62</volume>
          (
          <year>2004</year>
          ), S.
          <volume>1</volume>
          {66. doi:
          <volume>10</volume>
          . 1016 / S0065 -
          <volume>2458</volume>
          (
          <issue>03</issue>
          )
          <fpage>62001</fpage>
          -
          <lpage>2</lpage>
          .
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          [3]
          <string-name>
            <given-names>Carlo</given-names>
            <surname>Curino</surname>
          </string-name>
          <article-title>u. a. Schema Evolution in Wikipedia - Toward a Web Info"rmation System Benchmark\</article-title>
          .
          <source>In: ICEIS 2008 - Proceedings of the Tenth International Conference on Enterprise Information Systems</source>
          , Volume DISI, Barcelona, Spain, June 12-16,
          <year>2008</year>
          . Hrsg. von Jose Cordeiro und Joaquim Filipe.
          <year>2008</year>
          , S.
          <volume>323</volume>
          { 332. isbn:
          <fpage>978</fpage>
          -
          <lpage>989</lpage>
          -8111-36-4.
        </mixed-citation>
      </ref>
      <ref id="ref4">
        <mixed-citation>
          [4]
          <string-name>
            <surname>Google. App</surname>
          </string-name>
          Engine-Preise. Zugri :
          <volume>14</volume>
          .
          <fpage>02</fpage>
          .
          <year>2018</year>
          . Jan.
          <year>2018</year>
          . url: https://cloud.google.com/appengine/ pricing?hl=de.
        </mixed-citation>
      </ref>
      <ref id="ref5">
        <mixed-citation>
          [5]
          <string-name>
            <surname>Google</surname>
          </string-name>
          . Google Cloud Datastore. Zugri :
          <volume>14</volume>
          .
          <fpage>02</fpage>
          .
          <year>2018</year>
          . Nov.
          <year>2017</year>
          . url: https : / / cloud . google . com / datastore/docs/concepts/overview?hl=de.
        </mixed-citation>
      </ref>
      <ref id="ref6">
        <mixed-citation>
          [6]
          <string-name>
            <given-names>Robin</given-names>
            <surname>Hecht</surname>
          </string-name>
          .
          <article-title>"Konzeptuelle und Methodische Aufarbeitung von NoSQL-Datenbanksystemen\</article-title>
          . Diss. University of Bayreuth,
          <year>2015</year>
          . url: https://epub.unibayreuth.de/1847/.
        </mixed-citation>
      </ref>
      <ref id="ref7">
        <mixed-citation>
          [7]
          <string-name>
            <given-names>Mohamed</given-names>
            <surname>Houri</surname>
          </string-name>
          . Online. Zugri :
          <volume>23</volume>
          .
          <fpage>02</fpage>
          .
          <year>2018</year>
          . Okt.
          <year>2014</year>
          . url: http://www.oracle.com/technetwork/ articles/database/ddl- optimizaton
          <string-name>
            <surname>-</surname>
          </string-name>
          in
          <source>- odb12c2331068.html.</source>
        </mixed-citation>
      </ref>
      <ref id="ref8">
        <mixed-citation>
          [8]
          <string-name>
            <given-names>Meike</given-names>
            <surname>Klettke</surname>
          </string-name>
          , Uta Sto
          <article-title>rl und Stefanie Scherzinger</article-title>
          .
          <article-title>Herausforderungen bei der Anwendungsentwicklung "mit schema- exiblen NoSQL-Datenbanken\</article-title>
          .
          <source>In: HMD Praxis der Wirtschaftsinformatik 53.4</source>
          (
          <issue>2016</issue>
          ), S.
          <volume>428</volume>
          { 442. url: https://doi.org/10.1365/s40702- 016- 0234-9.
        </mixed-citation>
      </ref>
      <ref id="ref9">
        <mixed-citation>
          [9] MbigeikdeatKalmetitgkreatuio.na.
          <source>at"NscoaSlQeLDCsc</source>
          ,hUemSAa,
          <source>eDveocluemtiobner a0n5d08.12</source>
          .
          <year>2016</year>
          \. In: 2016 IEEE International Conference on Big Data,
          <source>BigData 2016</source>
          ,
          <string-name>
            <surname>Washington</surname>
            <given-names>DC</given-names>
          </string-name>
          , USA,
          <fpage>05</fpage>
          -
          <lpage>08</lpage>
          .
          <fpage>12</fpage>
          .
          <year>2016</year>
          .
          <article-title>Hrsg. von James Joshi u. a</article-title>
          . IEEE,
          <year>2016</year>
          , S.
          <volume>2764</volume>
          {2774. url: https : / / doi . org / 10 . 1109 / BigData.
          <year>2016</year>
          .
          <volume>7840924</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref10">
        <mixed-citation>
          [10]
          <article-title>Meike Klettke u. a. "Uncovering the evolution history of data lakes\</article-title>
          .
          <source>In: 2017 IEEE International Conference on Big Data, BigData</source>
          <year>2017</year>
          , Boston, MA, USA, December
          <volume>11</volume>
          -
          <issue>14</issue>
          ,
          <year>2017</year>
          . Hrsg.
          <article-title>von Jian-Yun Nie u. a</article-title>
          . IEEE,
          <year>2017</year>
          , S.
          <volume>2462</volume>
          {2471. isbn:
          <fpage>978</fpage>
          -1-
          <fpage>5386</fpage>
          -2715-0. url: https://doi.org/10.1109/BigData.
          <year>2017</year>
          .
          <volume>8258204</volume>
          .
        </mixed-citation>
      </ref>
      <ref id="ref11">
        <mixed-citation>
          [11]
          <article-title>Donghee Lee u. a. "On the Existence of a Spectrum of Policies that Subsumes the Least Recently Used (LRU) and Least Frequently Used (LFU) Policies\</article-title>
          .
          <source>In: Proceedings of the 1999 ACM SIGMETRICS international conference on Measurement and modeling of computer systems</source>
          , Atlanta, Georgia, USA, May 1-
          <issue>4</issue>
          ,
          <year>1999</year>
          . Hrsg. von Daniel A.
          <article-title>Menasce und Carey Williamson</article-title>
          . ACM,
          <year>1999</year>
          , S.
          <volume>134</volume>
          {143. url: http://doi. acm.
          <source>org/10</source>
          .1145/301453.301487.
        </mixed-citation>
      </ref>
      <ref id="ref12">
        <mixed-citation>
          [12]
          <string-name>
            <given-names>Uta</given-names>
            <surname>Sto</surname>
          </string-name>
          <article-title>rl u. a. Enabling E cient Agile Software Development of N"oSQL-backed Applications 17</article-title>
          .
          <article-title>Fachtagung des GI-Fachbereichs "Datenbanken und Informationssysteme (DBIS), 6</article-title>
          .-
          <fpage>10</fpage>
          . Marz
          <year>2017</year>
          , Stuttgart, Germany, Proceedings\. In: Datenbanksysteme fur Business,
          <source>Technologie und Web (BTW</source>
          <year>2017</year>
          ),
          <fpage>17</fpage>
          .
          <article-title>Fachtagung des GI-Fachbereichs "Datenbanken und Informationssysteme (DBIS), 6</article-title>
          .-
          <fpage>10</fpage>
          . Marz
          <year>2017</year>
          , Stuttgart, Germany,
          <source>Proceedings. Hrsg. von Bernhard Mitschang u. a. LNI. GI</source>
          ,
          <year>2017</year>
          , S.
          <volume>611</volume>
          {614. isbn:
          <fpage>978</fpage>
          -3-
          <fpage>88579</fpage>
          -659-6.
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>