The Evolving Philosophers Problem: Dynamic Change Management
IEEE Transactions on Software Engineering
Schema evolution in database systems: an annotated bibliography
ACM SIGMOD Record
Towards Upgrading Actively Replicated Servers On-the-Fly
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
A Dynamic Upgrade Mechanism Based on Publish/Subscribe Interaction
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
Online Upgrades Become Standard
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
Metadata Support for Safe Component Upgrades
COMPSAC '02 Proceedings of the 26th International Computer Software and Applications Conference on Prolonging Software Life: Development and Redevelopment
Live Upgrades of CORBA Applications Using Object Replication
ICSM '01 Proceedings of the IEEE International Conference on Software Maintenance (ICSM'01)
Hi-index | 0.00 |
With the advent of highly available systems, a new challenge has appeared in the form of the requirement for rolling upgrade support. A rolling upgrade is an upgrade of a software version, performed without a noticeable down-time or other disruption of service. Highly available systems were originally conceived to cope with hardware and software failures. Upgrading the software, while the same software is running, is a different matter and it is not trivial, given possible complex dependencies among different software and data entities. This paper addresses the needs for rolling upgradeability of various levels of software running in high-availability (HA) frameworks like the Availability Management Framework (AMF) as specified by SA Forum. The mechanism of a controlled switchover available in HA frameworks is beneficial for rolling upgrades and allows for almost instantaneous replacement of a software instance with a new version thereof. However, problems emerge when the new version exposes dependencies on other upgrades. Such dependencies may result from new or changed communications protocols, changed interfaces of other entities or dependency on new data produced by another entity. The main contribution of this paper is a method to capture the code, data and schema dependencies of a data-bound application system by way a directed graph called Upgrade Food Chain (UFC). By using UFC, the correct upgrade order of various entities may be established. Requirements and scenarios for upgrades of different layers of software including applications, database schemata, DBMS software and framework software are also separately discussed. The presented methods and guidelines may be effectively used in designing HA systems capable of rolling upgrades.