Mvedsua: Higher availability dynamic software updates via multi-version execution
File(s) mvedsua-asplos19.pdf (708.16 KB)
Accepted version
Author(s)
Pina, Luis
Andronidis, Anastasios
Hicks, Michael
Cadar, Cristian
Type
Conference Paper
Abstract
Dynamic Software Updating (DSU) is a technique for patch-ing stateful software without shutting it down, which enablesboth timely updates and non-stop service. Unfortunately,bugs in the update itself—whether in the changed code or inthe way the change is introduced dynamically—may causethe updated software to crash or misbehave. Furthermore,the time taken to dynamically apply the update may be un-acceptable if it introduces a long delay in service.This paper makes the key observation that both prob-lems can be addressed by employingMulti-Version Execution(MVE). To avoid delay in service, the update is applied to aforked copy while the original system continues to operate.Once the update completes, the MVE system monitors thatthe responses of both versions agree for the same inputs.Expected divergences are specified by the programmer usingan MVE-specific DSL. Unexpected divergences signal pos-sible errors and roll back the update, which simply meansterminating the updated version and reverting to the orig-inal version. This is safe because the MVE system keepsthe state of both versions in sync. If the new version showsno problems after a warmup period, operators can make itpermanent and discard the original version.We have implemented this approach, which we callMved-sua,1by extending the Kitsune DSU framework with Varan,a state-of-the-art MVE system. We have usedMvedsuato up-date several high-performance servers: Redis, Memcached,and Vsftpd. Our results show thatMvedsuasignificantlyreduces the update-time delay, imposes little overhead insteady state, and easily recovers from a variety of update-related errors.
Date Issued
2019-04
Date Acceptance
2018-11-07
Citation
Proceedings of the Twenty-Fourth International Conference on Ar-chitectural Support for Programming Languages and Operating SystemsASPLOS ’19, 2019, pp.573-585
ISBN
9781450362405
Publisher
Association for Computing Machinery
Start Page
573
End Page
585
Journal / Book Title
Proceedings of the Twenty-Fourth International Conference on Ar-chitectural Support for Programming Languages and Operating SystemsASPLOS ’19
Copyright Statement
© 2019 Copyright held by the owner/author(s). Publication rights licensed
to ACM
to ACM
Sponsor
Engineering & Physical Science Research Council (EPSRC)
Identifier
https://dl.acm.org/doi/10.1145/3297858.3304063
Grant Number
EP/L002795/1
Source
International Conference on Architectural Support for Programming Languages and Operating Systems (ASPLOS '19)
Publication Status
Published
Start Date
2019-04-13
Finish Date
2019-04-17
Coverage Spatial
Providence, RI, USA
Date Publish Online
2019-04
