Luís Pina

Atomic Dynamic Software Upgrades Using Software Transactional Memories

| PDF |

Luís Pina
MSc Thesis, Instituto Superior Técnico, University of Lisbon
November, 2009

Abstract

The upgrade of a running program is often a disruptive operation that involves stopping and restarting the program's execution. Yet, software upgrades are unavoidable. Unfortunately, current solutions for dynamic upgrades are either incomplete or not practical. Systems that have high availability requirements implement upgrades through a combination of application-specific software and redundant hardware. However, such systems lack support to migrate the state of the running program to a state that is compatible with the program that the upgrade introduces. Typically, they migrate the persisted data only and the data migration process may impose a long pause on the application. To ensure the atomicity of the upgrade and data migration operations, but still allow them to execute in parallel with the rest of the system, thereby avoiding the restart of the system or long pauses, I introduce a conceptual model that defines the semantics of the upgrade system, and that may be implemented with any STM and programming language. Furthermore, the upgrade system that I propose and the data migration process can be integrated seamlessly with modern software engineering methodologies. I describe an implementation of the proposed upgrade system for the Java platform that uses JVSTM. I implemented a prototype of the upgrade system that is able to perform a significant number of different types of upgrades to a running Java application without stopping it, providing thus a proof of concept that the implementation of the upgrade system is feasible.

Bibtex

@mastersthesis{pina09msc,
  title     = {Atomic Dynamic Software Upgrades Using Software Transactional Memories},
  author    = {Pina, Lu\'{\i}s},
  school    = {Instituto Superior T\'{\e}cnico, University of Lisbon},
  year      = {2009},
  month     = NOV,
  location  = {Lisbon, Portugal},
  
}