StrongUpdate: An Immediate Dynamic Software Update System for Multi-threaded Applications

Deqing Zou,Hao Wang,Hai Jin
DOI: https://doi.org/10.1007/978-3-319-15554-8_30
2015-01-01
Abstract:A new immediate Dynamic Software Update (DSU) system upon multi-threaded applications, called StrongUpdate is proposed in this paper. StrongUpdate uses stack reconstruction to update functions and variables in the stack at the same time, which can guarantee that functions and variables execute the same kind of version before and after software update. Deadlocks between threads can be prevented by adopting heterogeneous checkpointing algorithm during dynamic update which ensures all threads have been blocked before update operations start. In this way, all threads executing the same version of codes avoid overhead of synchronizing between old and new versions. Unlike the existing system such as UpStare which relies on specific compiler to implement source-to-source transformation, StrongUpdate uses binary rewriting and instrumentation instead. Our approach decides that information about checkpoints, functions and variables to be updated is written into the upgrade patch. We have prototyped StrongUpdate on the Linux system, which is able to update all parts of the applications at runtime including main function and loop functions without specific compiler support. To demonstrate the applicability of StrongUpdate, we experience StrongUpdate on three popular applications: vsftpd, httpd, sshd. The experimental results show that StrongUpdate incurs negligible runtime overhead: less than 1% performance degradation. The time to apply an update is less than 6%.
What problem does this paper attempt to address?