Automatic software upgrades for distributed systems

Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004. === Includes bibliographical references (p. 156-164). === Upgrading the software of long-lived, highly-available distributed systems is difficult. It is not possible to upgrade all the...

Full description

Bibliographic Details
Main Author: Ajmani, Sameer, 1976-
Other Authors: Barbara H. Liskov.
Format: Others
Language:en_US
Published: Massachusetts Institute of Technology 2005
Subjects:
Online Access:http://hdl.handle.net/1721.1/28717
id ndltd-MIT-oai-dspace.mit.edu-1721.1-28717
record_format oai_dc
spelling ndltd-MIT-oai-dspace.mit.edu-1721.1-287172019-05-02T16:27:50Z Automatic software upgrades for distributed systems Ajmani, Sameer, 1976- Barbara H. Liskov. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Massachusetts Institute of Technology. Dept. of Electrical Engineering and Computer Science. Electrical Engineering and Computer Science. Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004. Includes bibliographical references (p. 156-164). 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 disrup- tion. 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. by Sameer Ajmani. Ph.D. 2005-09-27T17:57:25Z 2005-09-27T17:57:25Z 2004 2004 Thesis http://hdl.handle.net/1721.1/28717 59553756 en_US M.I.T. theses are protected by copyright. They may be viewed from this source for any purpose, but reproduction or distribution in any format is prohibited without written permission. See provided URL for inquiries about permission. http://dspace.mit.edu/handle/1721.1/7582 164 p. 7066936 bytes 7087368 bytes application/pdf application/pdf application/pdf Massachusetts Institute of Technology
collection NDLTD
language en_US
format Others
sources NDLTD
topic Electrical Engineering and Computer Science.
spellingShingle Electrical Engineering and Computer Science.
Ajmani, Sameer, 1976-
Automatic software upgrades for distributed systems
description Thesis (Ph. D.)--Massachusetts Institute of Technology, Dept. of Electrical Engineering and Computer Science, 2004. === Includes bibliographical references (p. 156-164). === 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 disrup- tion. 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. === by Sameer Ajmani. === Ph.D.
author2 Barbara H. Liskov.
author_facet Barbara H. Liskov.
Ajmani, Sameer, 1976-
author Ajmani, Sameer, 1976-
author_sort Ajmani, Sameer, 1976-
title Automatic software upgrades for distributed systems
title_short Automatic software upgrades for distributed systems
title_full Automatic software upgrades for distributed systems
title_fullStr Automatic software upgrades for distributed systems
title_full_unstemmed Automatic software upgrades for distributed systems
title_sort automatic software upgrades for distributed systems
publisher Massachusetts Institute of Technology
publishDate 2005
url http://hdl.handle.net/1721.1/28717
work_keys_str_mv AT ajmanisameer1976 automaticsoftwareupgradesfordistributedsystems
_version_ 1719040776392933376