• DocumentCode
    1299748
  • Title

    Dynamic Software Updating Using a Relaxed Consistency Model

  • Author

    Chen, Haibo ; Yu, Jie ; Hang, Chengqun ; Zang, Binyu ; Yew, Pen-Chung

  • Author_Institution
    Parallel Process. Inst., Fudan Univ., Shanghai, China
  • Volume
    37
  • Issue
    5
  • fYear
    2011
  • Firstpage
    679
  • Lastpage
    694
  • 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 applications-a less than 1 percent performance degradation (but 5 percent for one case). The time to apply an update is also minimal.
  • Keywords
    computer architecture; hypermedia; multi-threading; program testing; software maintenance; software tools; transport protocols; HTTP server; POLUS; bidirectional write-through synchronization protocol; binary compatibility; cache-coherence protocol; computer architecture; concurrent activity; data structure; dynamic software update; iteratively evolving running unmodified multithreaded software; nonnegligible performance; prevalent server application; relaxed consistency model; software maintenance tool; Bidirectional control; Protocols; Registers; Runtime; Software; Synchronization; Maintainability; reliability; runtime environments.;
  • fLanguage
    English
  • Journal_Title
    Software Engineering, IEEE Transactions on
  • Publisher
    ieee
  • ISSN
    0098-5589
  • Type

    jour

  • DOI
    10.1109/TSE.2010.79
  • Filename
    5551162