University of Twente Student Theses


Zero Downtime Schema Migrations in Highly Available Databases

Kampen, C.M. van (2022) Zero Downtime Schema Migrations in Highly Available Databases.

[img] PDF
Abstract:Nowadays, online services are becoming more important in every day life. Some services are so important that they require to be online at all times. They are expected to have (near) zero-downtime. Downtime can either be planned for or unplanned for. To account for unplanned downtime, services can be made highly available by replicating the service across multiple nodes and balance the workload. If a node crashes or the service errors, the remaining nodes will take over their workload. Planned downtime however is difficult to diminish. It is a result of deploying a new software version. To have zero-downtime, both the old and new application versions have to live beside each other. Blue-green deployments make use of this practice to ensure zero-downtime in a stateless application. However zero-downtime deployments are not as straightforward for stateful applications. To migrate a database schema along the application deployment, another strategy is required. This research is based around the expand-contract pattern that can be used in combination with the blue-green deployments. In earlier work from Dijkstra, he proposes the use of this pattern and applies it to an Oracle database using the Liquibase versioning tool. In this research, the pattern has been applied to a Postgres database and a Liquibase plugin was implemented to simplify deployment. In addition, the pattern is tested on a data-intensive application that aims for high-availability by replicating the database. A benchmarking tool has been used to measure the latency and throughput of the database. From the results, it can be concluded that the expand-contract pattern provides zero-downtime.
Item Type:Essay (Master)
Faculty:EEMCS: Electrical Engineering, Mathematics and Computer Science
Subject:54 computer science
Programme:Computer Science MSc (60300)
Link to this item:
Export this item as:BibTeX
HTML Citation
Reference Manager


Repository Staff Only: item control page