ISLUS: an Immediate and Safe Live Update System for C Program

Zhikun Chen,Weizhong Qiang
DOI: https://doi.org/10.1109/dsc.2017.50
2017-01-01
Abstract:Traditional software updating techniques usually needs to shut down the applications, which make them not applicable for applications that needs continuous service. Dynamic software updating (DSU) can update the running programs without downtime, but the existing DSU systems cannot combine flexibility, immediacy and security when they update the software. This paper presents an Immediate and Safe Live Update System (ISLUS) for C program, which aims to update the multi-threaded program securely and immediately without downtime or extra assistance of the special compiler. To solve the semantic security problem when other DSU systems update the functions being called on the stack, ISLUS makes a novel intermediate function as a transition from the old function to the new function. To guarantee the reliability of DSU, which has many dangerous memory operations, ISLUS proposes a rollback mechanism based on checkpoint that can be used to restore the crashed program, which cannot be achieved by the other DSU systems. We provide an example to explain ISLUS and do the security analysis. We have prototyped our system and deployed ISLUS to update two big data applications: Memcached and Redis. The results indicate that ISLUS is effective and with low-overhead.
What problem does this paper attempt to address?