MUC: Updating cloud applications dynamically via multi-version execution

作者:Qiang, Weizhong*; Chen, Feng; Yang, Laurence T.; Jin, Hai
来源:Future Generation Computer Systems-The International Journal of eScience, 2017, 74: 254-264.
DOI:10.1016/j.future.2015.12.003

摘要

Cloud applications usually need to provide service continuously, however, updating them to fix bugs or add new features will interrupt the service. Conventional Dynamic Software Updating (DSU) systems try to update applications while running, but they are hardly able to consider the communication of the application to be updated with other programs, and could then lead to some inconsistency. Therefore, the DSU systems could not be directly applied into cloud where one application normally interacts with the other side. @@@ We propose an improved DSU system to update cloud applications dynamically, and utilize the multi version execution approach to handle the inconsistent issue. When a new update arrives, instead of updating the application to the new version, we fork a new process of the old version and dynamically update it to the new version, then make these two versions run concurrently until the update finishes. To show the feasibility of the proposed solution, a prototype system called MUC (Multi-version execution for Updating of Cloud) is implemented on Linux, and MUC is applied to update three cloud applications, Redis, Memcached, and Icecast.