Safe and timely dynamic updates for multi-threaded programs

Iulian Neamtiu, Michael Hicks

Research output: Chapter in Book/Report/Conference proceedingConference contribution

65 Scopus citations

Abstract

Many dynamic updating systems have been developed that enable a program to be patched while it runs, to fix bugs or add new features. This paper explores techniques for supporting dynamic updates to multi-threaded programs, focusing on the problem of applying an update in a timely fashion while still producing correct behavior. Past work has shown that this tension of safety versus timeliness can be balanced for single-threaded programs. For multi-threaded programs, the task is more difficult because myriad thread interactions complicate understanding the possible program states to which a patch could be applied. Our approach allows the programmer to specify a few program points (e.g., one per thread) at which a patch may be applied, which simplifies reasoning about safety. To improve timeliness, a combination of static analysis and runtime support automatically expands these few points to many more that produce behavior equivalent to the originals. Experiments with thirteen realistic updates to three multi-threaded servers show that we can safely perform a dynamic update within milliseconds when more straightforward alternatives would delay some updates indefinitely.

Original languageEnglish (US)
Title of host publicationPLDI'09 - Proceedings of the 2009 ACM SIGPLAN Conference on Programming Language Design and Implementation
Pages13-24
Number of pages12
DOIs
StatePublished - Nov 30 2009
Externally publishedYes
Event2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'09 - Dublin, Ireland
Duration: Jun 15 2009Jun 20 2009

Publication series

NameProceedings of the ACM SIGPLAN Conference on Programming Language Design and Implementation (PLDI)

Other

Other2009 ACM SIGPLAN Conference on Programming Language Design and Implementation, PLDI'09
CountryIreland
CityDublin
Period6/15/096/20/09

All Science Journal Classification (ASJC) codes

  • Software

Keywords

  • Dynamic software updating
  • Multi-threading
  • Update safety
  • Update timeliness

Fingerprint Dive into the research topics of 'Safe and timely dynamic updates for multi-threaded programs'. Together they form a unique fingerprint.

Cite this