Dynamic software updating using a relaxed consistency model

Haibo Chen, Jie Yu, Hengqun C. Hang, Binyu Zang, Pen Chung Yew

Research output: Contribution to journalArticlepeer-review

35 Scopus citations

Abstract

Software is inevitably subject to changes. There are patches and upgrades that close vulnerabilities, fix bugs, and evolve software with new features. Unfortunately, most traditional dynamic software updating approaches suffer some level of limitations; few of them can update multithreaded applications when involving data structure changes, while some of them lose binary compatibility or incur nonnegligible performance overhead. This paper presents POLUS, a software maintenance tool capable of iteratively evolving running unmodified multithreaded software into newer versions, yet with very low performance overhead. The main idea in POLUS is a relaxed consistency model that permits the concurrent activity of the old and new code. POLUS borrows the idea of cache-coherence protocol in computer architecture and uses a "bidirectional write-through" synchronization protocol to ensure system consistency. 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 on the three applicationsa less than 1 percent performance degradation (but 5 percent for one case). The time to apply an update is also minimal.

Original languageEnglish (US)
Article number7
Pages (from-to)679-694
Number of pages16
JournalIEEE Transactions on Software Engineering
Volume37
Issue number5
DOIs
StatePublished - 2011

Bibliographical note

Funding Information:
This work was funded in parts by China National 973 Plan under grant numbered 2005CB321905, Shanghai Leading Academic Discipline Project (Project Number: B114), and a research grant from Intel numbered MOE-INTEL-09-04. The source code of POLUS and evolutionary tests are available with sourceforge (http:// sourceforge.net/projects/polus/). The patch generator is distributed under the BSD License, others are based on GNU General Public License. A preliminary and abridged version of this paper was presented at the 29th International Conference on Software Engineering (ICSE ’07).

Keywords

  • Maintainability
  • reliability
  • runtime environments.

Fingerprint

Dive into the research topics of 'Dynamic software updating using a relaxed consistency model'. Together they form a unique fingerprint.

Cite this