Automatic Software Upgrades for Distributed Systems
Sameer Ajmani, Barbara H. Liskov · DSpace@MIT (Massachusetts Institute of Technology) · 2003
Abstract Upgrading the software of long-lived distributed systems is difficult. It is not possible to upgrade all the nodes in a system at once, since some nodes may be down and halting the system for an upgrade is unacceptable. This means that different nodes may be running different software versions and yet need to communicate, even though those versions may not be fully compatible. We present a methodology and infrastructure that addresses these challenges and makes it possible to upgrade distributed systems automatically while limiting service disruption. 1 Introduction Our goal is to support automatic software upgrades for long-lived distributed systems, like server clusters, content distribution networks, peer-to-peer systems, and sensor networks. Since such systems are long-lived, we must expect changes (upgrades) in their software over time to fix bugs, add features, and improve performance. The key challenge to upgrading such systems is enabling them to provide service during upgrades.