Dynamic Software Updating Using a Relaxed Consistency Model

被引:29
|
作者
Chen, Haibo [1 ]
Yu, Jie [2 ]
Hang, Chengqun [3 ]
Zang, Binyu [1 ]
Yew, Pen-Chung [4 ]
机构
[1] Fudan Univ, Parallel Proc Inst, Shanghai 201203, Peoples R China
[2] Univ Michigan, ACAL Lab, CSE Dept, Ann Arbor, MI 48109 USA
[3] Microsoft China Ltd, Shanghai 200030, Peoples R China
[4] Univ Minnesota Twin Cities, Dept Comp Sci & Engn, Minneapolis, MN 55455 USA
基金
美国国家科学基金会;
关键词
Maintainability; reliability; runtime environments; PROGRAM;
D O I
10.1109/TSE.2010.79
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
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.
引用
收藏
页码:679 / 694
页数:16
相关论文
共 50 条
  • [1] A Hybrid Model in Dynamic Software Updating for C
    Jalili, Mehdi
    Parsa, Saeed
    Seifzadeh, Habib
    ADVANCES IN SOFTWARE ENGINEERING, PROCEEDINGS, 2009, 59 : 151 - +
  • [2] Dynamic software updating
    Hicks, M
    Moore, JT
    Nettles, S
    ACM SIGPLAN NOTICES, 2001, 36 (05) : 13 - 23
  • [3] Dynamic software updating
    Hicks, M
    Nettles, S
    ACM TRANSACTIONS ON PROGRAMMING LANGUAGES AND SYSTEMS, 2005, 27 (06): : 1049 - 1096
  • [4] Reducing State Explosion for Software Model Checking with Relaxed Memory Consistency Models
    Abe, Tatsuya
    Ugawa, Tomoharu
    Maeda, Toshiyuki
    Matsumoto, Kousuke
    DEPENDABLE SOFTWARE ENGINEERING: THEORIES, TOOLS, AND APPLICATIONS, 2016, 9984 : 118 - 135
  • [5] Using a relaxed memory consistency model to support collaborative applications
    Prieto, C
    Eterovic, Y
    PARALLEL AND DISTRIBUTED COMPUTING SYSTEMS, 2004, : 503 - 508
  • [6] A survey of dynamic software updating
    Seifzadeh, Habib
    Abolhassani, Hassan
    Moshkenani, Mohsen Sadighi
    JOURNAL OF SOFTWARE-EVOLUTION AND PROCESS, 2013, 25 (05) : 535 - 568
  • [7] Challenges in Dynamic Software Updating
    Mlinaric, Danijel
    TEM JOURNAL-TECHNOLOGY EDUCATION MANAGEMENT INFORMATICS, 2020, 9 (01): : 117 - 128
  • [8] Improving Reliability of Dynamic Software Updating Using Runtime Recovery
    Gu, Tianxiao
    Zhao, Zelin
    Ma, Xiaoxing
    Xu, Chang
    Cao, Chun
    Lu, Jian
    2016 23RD ASIA-PACIFIC SOFTWARE ENGINEERING CONFERENCE (APSEC 2016), 2016, : 257 - 264
  • [9] Consequentialism and dynamic consistency in updating ambiguous beliefs
    Takao Asano
    Hiroyuki Kojima
    Economic Theory, 2019, 68 : 223 - 250
  • [10] Consequentialism and dynamic consistency in updating ambiguous beliefs
    Asano, Takao
    Kojima, Hiroyuki
    ECONOMIC THEORY, 2019, 68 (01) : 223 - 250