specific requirements of cloud platforms and evaluate
its feasibility in this special but very important area.
Our contributions are:
• Architectural Blueprint for Database Evolu-
tion in Cloud Applications. We propose an ar-
chitecture to integrate seamless database evolu-
tion into existing tools. Applying results from
the literature, we guarantee that no data will
be corrupted during the evolution and migration.
(Section 3)
• Extensive Evaluation. We analyze the perfor-
mance characteristics to equip developers with a
guideline for the use of row- or column-stores and
we highlight the necessity of statement-wise trig-
gers to gain a significant speed up. (Section 4)
In a word, DECA now facilitates agile and seamless
database evolution for cloud application platforms to
keep the pace with ever-changing business decisions.
Outline: In Section 2, we discuss modern cloud ap-
plication development and detail on current advances
in database evolution. In Section 3, we apply the ad-
vances in database evolution for agile cloud deploy-
ment: We present the design of DECA and show how
to integrate it in a common cloud platform with a
relational database. After an extensive evaluation in
Section 4, we conclude the work in Section 5.
2 RELATED WORK
Evolving applications as quickly and as robustly
as possible is an omnipresent challenge in soft-
ware development. To this end, cloud application
platforms such as Cloud Foundry implement Blue-
Green Deployment (https://docs.cloudfoundry.org/
devguide/deploy-apps/blue-green.html) to reduce the
risk and downtime during the continuous develop-
ment of cloud applications. Figure 1 shows the
general process. The currently running application
version (1) is called the blue version. While the
new/modified green version is developed, the blue re-
mains live and active (evolution phase). Once the
green version is ready, it is deployed and thoroughly
tested (2). Once the testing is done, we migrate all
users to the green version (migration phase). Now,
the requests are routed to the green version so that we
can take the old blue version offline (3). However, this
approach is not applicable for database application as
it will lead to data discrepancy between the green and
the blue database version.
To evolve existing applications in an easy, con-
trolled, and robust manner, modern agile software de-
velopment heavily relies on Refactorings (Ambler
and Lines, 2012; Fowler and Beck, 1999). Scott
Ambler (Ambler and Sadalage, 2006) adapts this
approach to the evolution of a production database
by proposing more than 100 Database Refactorings
ranging from simple renamings over changing con-
straints all the way to exchanging algorithms and re-
factoring single columns to lookup tables. One es-
sential characteristic of these refactorings is that most
of them couple the evolution of both the schema and
the data in consistent and easy-to-use operations. The
overall goal is to make database development just as
agile as software development by changing the game
from big upfront modeling to an incremental continu-
ous evolution of the database based on refactorings.
Database researchers pick up on this refactorings-
based principle and propose structured Database
Evolution Languages (DELs). DELs provide a set
of Schema Modification Operations (SMOs) which
are refactorings on the database schema. SMOs cou-
ple the evolution of both the schema and the data with
intuitive and consistent evolution operations, e.g., par-
titioning or joining existing tables. SMOs are way
more compact than comparable SQL scripts (Curino
et al., 2013; Herrmann et al., 2017). Since manual
schema evolution is a heavy, error prone and expen-
sive operation, it is beneficial to have operations like
SMOs which can do the required task in a clean and
consistent manner without the risk of corrupting data.
One of the most advanced SMO-based DELs, we are
aware of, is PRISM (Curino et al., 2009) that inclu-
des eleven SMOs that allow to describe most practi-
cal database evolution scenarios (Curino et al., 2008).
PRISM++, which extends PRISM, includes Integrity
Constraint Modification Operations (ICMOs) that al-
low to create and drop both value and primary key and
foreign key constraints with the same charm and sim-
plicity as SMOs (Curino and Zaniolo, 2010; Curino
et al., 2013). Further, PRISM++ facilitates update
rewriting. This enables developers to automatically
adapt applications working on an old schema version
to correctly access the data of a new SMO-evolved
schema version.
BiDEL is a more recent extension of PRISM that
allows to create, drop, and rename both tables and
columns as well as splitting and merging tables both
vertically and horizontally. BiDEL is shown to be re-
lationally complete (Herrmann et al., 2015) and bi-
directional. The latter facilitates co-existing schema
version with a system called INVERDA (Herrmann
et al., 2017). INVERDA automatically makes mul-
tiple schema versions accessible in one database—
write operations in one version are immediately vi-
sible in all other schema versions as well. Further,
INVERDA guarantees data independence: No mat-
DATA 2018 - 7th International Conference on Data Science, Technology and Applications
198