Impact of Database Schema Evolution on Software Availability
software evolution; high availability; blocking operations; databases
In the software’s life cycle that uses relational databases to store data, we observed that
the natural evolution of the application takes to changes in the database schema, that
is the structure that defines how the data is stored. During the execution of operations
responsible for changes in the database schema, the database can interrupt the data
access until the schema change operation finishes. We call these operations that cause
interruptions in data access “blocking operations”. The blocking operations are a problem,
particularly in systems that need high availability as monitoring systems, sale systems
with high traffic volume, government systems, etc. In this work, we study the database
schema evolution of a real-world application to understand the schema change operation’s
blocking nature. Moreover, we performed a series of controlled experiments aiming to
analyze the impact of schema change operations in the availability of an application being
used during the the schema evolution. Finally, our work implements suggestions from
industry practitioners to solve the data unavailability problem during the schema evolution.
Thus, the same experiment set was repeated in a new scenario where the practitioner’s
suggestions were applied. Our results show that the suggestions from practitioners are
efficient until a limit, in such a way that databases with a high number of registries can
have an evident decrease in the duration of database unavailability, but not enough to the
final user.