Rx: Treating bugs method to, survive as allergies - A safe software failures

被引:142
作者
Qin, Feng [1 ]
Tucek, Joseph
Zhou, Yuanyuan
Sundaresan, Jagadeesan
机构
[1] Ohio State Univ, Columbus, OH 43210 USA
[2] Univ Illinois, Urbana, IL 61801 USA
来源
ACM TRANSACTIONS ON COMPUTER SYSTEMS | 2007年 / 25卷 / 03期
关键词
D O I
10.1145/1275517.1275519
中图分类号
TP301 [理论、方法];
学科分类号
081202 ;
摘要
Many applications demand availability. Unfortunately, software failures greatly reduce system availability. Prior work on surviving software failures suffers from one or more of the following limitations: required application restructuring, inability to address deterministic software bugs, unsafe speculation on program execution, and long recovery time. This paper proposes an innovative safe technique, called Rx, which can quickly recover programs from many types of software bugs, both deterministic and nondeterministic. Our idea, inspired from allergy treatment in real life, is to rollback the program to a recent checkpoint upon a software failure, and then to reexecute the program in a modified environment. We base this idea on the observation that many bugs are correlated with the execution environment, and therefore can be avoided by removing the "allergen" from the environment. Rx requires few to no modifications to applications and provides programmers with additional feedback for bug diagnosis. We have implemented Rx on Linux. Our experiments with five server applications that contain seven bugs of various types show that Rx can survive six out of seven software failures and provide transparent fast recovery within 0.017-0.16 seconds, 21-53 times faster than the whole program restart approach for all but one case (CVS). In contrast, the two tested alternatives, a whole program restart approach and a simple rollback and reexecution without environmental changes, cannot successfully recover the four servers (Squid, Apache, CVS, and ypserv) that contain deterministic bugs, and have only a 40% recovery bate for the server (MySQL) that contains a nondeterministic concurrency bug. Additionally, Rx's checkpointing system is lightweight, imposing small time and space overheads.
引用
收藏
页数:33
相关论文
共 72 条
  • [1] ABRAMS M, 1995, P 4 INT WWW C
  • [2] ALVISI L, 1996, P 15 ACM S PRINC DIS
  • [3] DATA DIVERSITY - AN APPROACH TO SOFTWARE FAULT TOLERANCE
    AMMANN, PE
    KNIGHT, JC
    [J]. IEEE TRANSACTIONS ON COMPUTERS, 1988, 37 (04) : 418 - 425
  • [4] Amza C., 2000, P INT C DEP SYST NET
  • [5] AVIZIENS A, 1977, P 1 INT COMP SOFTW A
  • [6] AVIZIENS A, 1985, IEEE T SOFTWARE ENG, V11, P12
  • [7] BARTLETT JF, 1981, P 8 S OP SYST PRINC
  • [8] BERGER E. D., 2006, P ACM SIGPLAN C PROG
  • [9] BIRMAN KP, 1996, BUILDING SECURE RELI, pCH19
  • [10] BOBBIO A, 1998, P INT COMP PERF DEP