Repository logo
Log in(current)
Repository logoMIT Open ScholarshipDSpace@MIT
  1. Home
  2. Computer Science and Artificial Intelligence Lab (CSAIL)
  3. CSAIL Digital Archive
  4. CSAIL Technical Reports (July 1, 2003 - present)
  5. Automatic Software Upgrades for Distributed Systems

Automatic Software Upgrades for Distributed Systems

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2005-078.ps

Size

129.11 MB

Format

PostScript

Checksum (MD5)

c800a89ad38783e87c3e3e97776dadbe

Thumbnail Image
Download
Name

MIT-CSAIL-TR-2005-078.pdf

Size

5.28 MB

Format

Adobe PDF

Checksum (MD5)

a410e9656aa608472b24f6eb1e885fdd

Author(s)
Ajmani, Sameer
Date Issued
November 30, 2005
Series/Report no.
Massachusetts Institute of Technology Computer Science and Artificial Intelligence Laboratory
Abstract
Upgrading the software of long-lived, highly-available distributed systems is difficult. It is not possible to upgrade all the nodes in a system at once, since some nodes may be unavailable and halting the system for an upgrade is unacceptable. Instead, upgrades may happen gradually, and there may be long periods of time when different nodes are running different software versions and need to communicate using incompatible protocols. We present a methodology and infrastructure that address these challenges and make it possible to upgrade distributed systems automatically while limiting service disruption.Our methodology defines how to enable nodes to interoperate across versions, how to preserve the state of a system across upgrades, and how to schedule an upgrade so as to limit service disruption. The approach is modular: defining an upgrade requires understanding only the new software and the version it replaces.The upgrade infrastructure is a generic platform for distributing and installing software while enabling nodes to interoperate across versions. The infrastructure requires no access to the system source code and is transparent: node software is unaware that different versions even exist. We have implemented a prototype of the infrastructure called Upstart that intercepts socket communication using a dynamically-linked C++ library. Experiments show that Upstart has low overhead and works well for both local-area and Internet systems.
Persistent DSpace Link
http://hdl.handle.net/1721.1/30589
Repository logo
PrivacyPermissionsAccessibilityContact us
Repository logo
Notify us about copyright concerns.