<!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>Challenges with Continuous Deployment of NoSQL-backed Database Applications</article-title>
      </title-group>
      <contrib-group>
        <contrib contrib-type="author">
          <string-name>Meike Klettke</string-name>
          <xref ref-type="aff" rid="aff2">2</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stefanie Scherzinger</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Uta Storl</string-name>
          <xref ref-type="aff" rid="aff0">0</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Stephanie Sombach</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <contrib contrib-type="author">
          <string-name>Katharina Wiech</string-name>
          <xref ref-type="aff" rid="aff1">1</xref>
        </contrib>
        <aff id="aff0">
          <label>0</label>
          <institution>Darmstadt University of Applied Sciences</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff1">
          <label>1</label>
          <institution>OTH Regensburg</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
        <aff id="aff2">
          <label>2</label>
          <institution>University of Rostock</institution>
          ,
          <country country="DE">Germany</country>
        </aff>
      </contrib-group>
      <abstract>
        <p>We address a practical challenge with the continuous deployment of database applications, which actually constitutes a data integration problem: Upon a new deployment of the application code, entities already persisted in the production database no longer match what the application code expects. Apart from migrating all legacy entities eagerly at the time of the release, lazy migration is an alternative popular with NoSQL data stores: A schema- exible database stores entities with legacy structure, as well as up-to-date entities. When a legacy entity is loaded into the application, all pending structural changes are applied. Thus, from the viewpoint of the application, entities are always up-to-date. Yet lazily migrating legacy data from several releases back, involving more than one entity at-a-time, is not a trivial task. At LWA 2015 [3], we presented our vision of a schema management unit for NoSQL data stores that carries out schema evolution lazily: This involves an internal, Datalog-based model for reading, writing, and migrating data [2]. However, we use Datalog not only to specify the semantics of schema evolution operations, but Datalog is our actual vehicle for carrying out data migrations: In this overview talk, we introduce Datalution [1], a tool that alternatively evaluates our Datalog rules bottom-up (for eager data migration) or top-down (for lazy data migration). In particular, our tool allows for an easy comparison of both approaches in terms of the number of physical writes to the data store. We demonstrate Datalution, provide insight into its mechanics, and outline our next steps in integrating the Datalution engine with an industrial-strength NoSQL data store.</p>
      </abstract>
      <kwd-group>
        <kwd>Schema evolution</kwd>
        <kwd>NoSQL data stores</kwd>
        <kwd>Datalog</kwd>
      </kwd-group>
    </article-meta>
  </front>
  <body />
  <back>
    <ref-list>
      <ref id="ref1">
        <mixed-citation>
          1.
          <string-name>
            <surname>Scherzinger</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Sombach</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Wiech</surname>
            ,
            <given-names>K.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Klettke</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          , Storl, U.:
          <article-title>Datalution: A Tool for Continuous Schema Evolution in NoSQL-backed Web Applications</article-title>
          . In: Proceedings QUDOS'
          <volume>16</volume>
          (
          <year>2016</year>
          ), Tool Demo.
        </mixed-citation>
      </ref>
      <ref id="ref2">
        <mixed-citation>
          2.
          <string-name>
            <surname>Scherzinger</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          , Storl, U.,
          <string-name>
            <surname>Klettke</surname>
            ,
            <given-names>M.:</given-names>
          </string-name>
          <article-title>A Datalog-based Protocol for Lazy Data Migration in Agile NoSQL Application Development</article-title>
          . In: Proceedings DBPL'
          <volume>15</volume>
          (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
      <ref id="ref3">
        <mixed-citation>
          3. Storl, U.,
          <string-name>
            <surname>Klettke</surname>
            ,
            <given-names>M.</given-names>
          </string-name>
          ,
          <string-name>
            <surname>Scherzinger</surname>
            ,
            <given-names>S.</given-names>
          </string-name>
          :
          <article-title>Kontrolliertes Schema-Evolutionsmanagement fur NoSQL-Datenbanksysteme</article-title>
          .
          <source>In: Proceedings LWA 2015 Workshops: KDML</source>
          ,
          <string-name>
            <surname>FGWM</surname>
          </string-name>
          , IR, and FGDB. (
          <year>2015</year>
          )
        </mixed-citation>
      </ref>
    </ref-list>
  </back>
</article>