Publication | Closed Access
Beyond the rainbow: self-adaptive failure avoidance in configurable systems
30
Citations
38
References
2014
Year
Unknown Venue
Software MaintenanceEngineeringSurvivable SystemComputer ArchitectureSoftware EngineeringFault ToleranceGlobal Utility FunctionSelf-adaptive Rainbow ArchitectureSoftware AnalysisSelf-managing SystemReliability EngineeringSystems EngineeringSelf-adaptive Software SystemsSelf-adaptive Failure AvoidanceSelf-adaptive SystemComputer EngineeringComputer ScienceAutomated RepairSoftware DesignProgram AnalysisSoftware TestingAutomationFault InjectionSystem Software
Self-adaptive software systems monitor their state and then adapt when certain conditions are met, guided by a global utility function. In prior work we developed algorithms and conducted a post-hoc analysis demonstrating the possibility of adapting to software failures by judiciously changing configurations. In this paper we present the REFRACT framework that realizes this idea in practice by building on the self-adaptive Rainbow architecture. REFRACT extends Rainbow with new components and algorithms targeting failure avoidance. We use REFRACT in a case study running four independently executing Firefox clients with 36 passing test cases and 7 seeded faults. The study show that workarounds for all but one of the seeded faults are found and the one that is not found never fails -- it is guarded from failing by a related workaround. Moreover, REFRACT finds workarounds for eight configuration-related unseeded failures from tests that were expected to pass (and did under the default configuration). Finally, the data show that when a failure and its workaround are found, configuration guards prevent the failure from appearing again. In a simulation lasting 24 hours we see over 150 guard activations and no failures with workarounds remaining beyond 16 hours.
| Year | Citations | |
|---|---|---|
Page 1
Page 1