A Study of Dynamic Software Update Quiescence for Multithreaded Programs. Hayden, C., Saur, K., Hicks, M., & Foster, J. In Proc. of the Fourth Int'l Workshop on Hot Topics in Software Upgrades, 2012.
abstract   bibtex   
Dynamic software updating (DSU) techniques show great promise in allowing vital software services to be upgraded without downtime, avoiding dropped connections and the loss of critical program state. For multithreaded programs, DSU systems must balance correctness and timeliness. To simplify reasoning that an update is correct, we could limit updates to take place only when all threads have blocked at well-defined update points. However, several researchers have pointed out that this approach poses the risk of delaying an update for too long, even indefinitely, and therefore have developed fairly complicated mechanisms to mitigate the risk. This paper argues that such mechanisms are unnecessary by demonstrating empirically that many multithreaded programs can be updated with minimal delay using only a small number of manually annotated update points. Our study of the time taken for all of the threads in six real-world, event-driven programs to reach their update points ranged from 0.155 to 107.558 ms, and most were below 1 ms.
@inproceedings{hayden_study_2012,
	title = {A {Study} of {Dynamic} {Software} {Update} {Quiescence} for {Multithreaded} {Programs}},
	abstract = {Dynamic software updating (DSU) techniques show great promise in allowing vital software services to be upgraded without downtime, avoiding dropped connections and the loss of critical program state. For multithreaded programs, DSU systems must balance correctness and timeliness. To simplify reasoning that an update is correct, we could limit updates to take place only when all threads have blocked at well-defined update points. However, several researchers have pointed out that this approach poses the risk of delaying an update for too long, even indefinitely, and therefore have developed fairly complicated mechanisms to mitigate the risk. This paper argues that such mechanisms are unnecessary by demonstrating empirically that many multithreaded programs can be updated with minimal delay using only a small number of manually annotated update points. Our study of the time taken for all of the threads in six real-world, event-driven programs to reach their update points ranged from 0.155 to 107.558 ms, and most were below 1 ms.},
	booktitle = {Proc. of the {Fourth} {Int}'l {Workshop} on {Hot} {Topics} in {Software} {Upgrades}},
	author = {Hayden, C.M. and Saur, K. and Hicks, M. and Foster, J.S.},
	year = {2012},
	keywords = {Benchmark testing, DSU systems, DSU techniques, Delay, Instruction sets, Libraries, Servers, correctness, critical program state, dropped connections, dynamic software update quiescence, dynamic software updating techniques, event-driven programs, manually annotated update points, multi-threading, multithreaded programs, software maintenance, timeliness, veniok, vital software services, well-defined update points}
}

Downloads: 0