Safe and timely updates to multi-threaded programs
Title | Safe and timely updates to multi-threaded programs |
Publication Type | Journal Articles |
Year of Publication | 2009 |
Authors | Neamtiu I, Hicks MW |
Journal | SIGPLAN Not. |
Volume | 44 |
Issue | 6 |
Pagination | 13 - 24 |
Date Published | 2009/06// |
ISBN Number | 0362-1340 |
Keywords | dynamic software updating, multi-threading, update safety, update timeliness |
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 run-time 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. |
URL | http://doi.acm.org/10.1145/1543135.1542479 |
DOI | 10.1145/1543135.1542479 |