Luís Pina

MVEDSUa: Higher Availability Dynamic Software Updates via Multi-Version Execution

| PDF | slides | poster | |

Luís Pina and Anastasios Andronidis and Michael Hicks and Cristian Cadar
In Proceedings of the ACM 24th Architectural Support for Programming Languages and Operating Systems (ASPLOS)
April, 2019

Abstract

Dynamic Software Updating (DSU) is a general-purpose technique for patching stateful software without shutting it down, which enables both timely updates and non-stop service. However, applying an update could induce a long delay in service, and bugs in the update - both in the changed code and in the specification for effecting that change dynamically - may cause the updated software to crash or misbehave. This paper proposes MVEDSUa, a system that solves these problems by augmenting a DSU system with support for Multi-Version Execution (MVE). To start, MVEDSUa performs an update in parallel with the original system, thereby avoiding any service delay. Then, it monitors that the updated and original systems' responses agree when given the same inputs. Expected differences are specified by the programmer, so remaining differences signal likely errors. If the new version shows no problems, it can be installed permanently. We implemented MVEDSUa on top of Kitsune and Varan state-of-the-art DSU and MVE systems respectively, and used it to update several high-performance servers: Redis, Memcached, and VSFTPD. Our results show that MVEDSUa significantly reduces the update-time delay, imposes little overhead in steady state, and easily recovers from a variety of update-related errors.

Bibtex

@inproceedings{pina19mvedsua,
  title     = {MVEDSUa: Higher Availability Dynamic Software Updates via Multi-Version Execution},
  author    = {Pina, Lu\'{\i}s and Andronidis, Anastasios and Hicks, Michael and Cadar, Cristian},
  booktitle = {Proceedings of the {ACM} 24th Architectural Support for Programming Languages and Operating Systems},
  year      = {2019},
  month     = APR,
  series    = {ASPLOS '19},
  location  = {Providence, RI, USA},
  publisher = {ACM},
  
}