kirancodes.me
To Proof Maintenance & Beyond!

POLUS: A POwerful Live Updating System

Haibo Chen, Jie Yu, Rong Chen, Binyu Zang, Pen-Chung Yew

Abstract

This paper presents POLUS, a software maintenance tool capable of iteratively evolving running software into newer versions. POLUS's primary goal is to increase the dependability of contemporary server software, which is frequently disrupted either by external attacks or by scheduled upgrades. To render POLUS both practical and powerful, we design and implement POLUS aiming to retain backward binary compatibility, support for multithreaded software and recover already tainted state of running software, yet with good usability and very low runtime overhead. To demonstrate the applicability of POLUS, we report our experience in using POLUS to dynamically update three prevalent server applications: vsftpd, sshd and apache HTTP server. Performance measurements show that POLUS incurs negligible runtime overhead: a less than 1% performance degradation (but 5% for one case). The time to apply an update is also minimal.

BibTeX
@inproceedings{Chen-al:ICSE07,
  author    = {Haibo Chen and
               Jie Yu and
               Rong Chen and
               Binyu Zang and
               Pen{-}Chung Yew},
  title     = {{POLUS:} A {POwerful} Live Updating System},
  booktitle = {ICSE},
  pages     = {271--281},
  publisher = {{IEEE} Computer Society},
  year      = {2007},
}

Related papers