State transfer for clear and efficient runtime updates

  • Authors:
  • Christopher M. Hayden;Edward K. Smith;Michael Hicks;Jeffrey S. Foster

  • Affiliations:
  • University of Maryland, College Park, USA;University of Maryland, College Park, USA;University of Maryland, College Park, USA;University of Maryland, College Park, USA

  • Venue:
  • ICDEW '11 Proceedings of the 2011 IEEE 27th International Conference on Data Engineering Workshops
  • Year:
  • 2011

Quantified Score

Hi-index 0.00

Visualization

Abstract

Dynamic software updating (DSU), the practice of updating software while it executes, is a lively area of research. The DSU approach most prominent in both commercial and research systems is in-place updating, in which patches containing program modifications are loaded into a running process. However, in-place updating suffers from several problems: it requires complex tool support, it may adversely affect the performance of normal execution, it requires challenging reasoning to understand the behavior of an updated program, and it requires extra effort to modify program state to be compatible with an update. This paper presents preliminary work investigating the potential for state transfer updating to address these problems. State transfer updates work by launching a new process running the updated program version and transferring program state from the running process to the updated version. In this paper, we describe the use and implementation of Ekiden, a new state transfer updating library for C/C++ programs. Ekiden seeks to redress the difficulties of in-place updating, and we report on our experience updating VSFTPD using Ekiden. This initial experience suggests that state transfer provides the availability benefits of in-place DSU approaches while addressing many of their shortcomings.