Self-Adapting Reliability in Distributed Software Systems
Abstract
Developing modern distributed software systems is difficult in part because they have little control over the environments in which they execute. For example, hardware and software resources on which these systems rely may fail or become compromised and malicious. Redundancy can help manage such failures and compromises, but when faced with dynamic, unpredictable resources and attackers, the system reliability can still fluctuate greatly. Empowering the system with self-adaptive and self-managing reliability facilities can significantly improve the quality of the software system and reduce reliance on the developer predicting all possible failure conditions. We present iterative redundancy, a novel approach to improving software system reliability by automatically injecting redundancy into the system's deployment. Iterative redundancy self-adapts in three ways: (1) by automatically detecting when the resource reliability drops, (2) by identifying unlucky parts of the computation that happen to deploy on disproportionately many compromised resources, and (3) by not relying on a priori estimates of resource reliability. Further, iterative redundancy is theoretically optimal in its resource use: Given a set of resources, iterative redundancy guarantees to use those resources to produce the most reliable version of that software system possible; likewise, given a desired increase in the system's reliability, iterative redundancy guarantees achieving that reliability using the least resources possible. Iterative redundancy handles even the Byzantine threat model, in which compromised resources collude to attack the system. We evaluate iterative redundancy in three ways. First, we formally prove its self-adaptation, efficiency, and optimality properties. Second, we simulate it at scale using discrete event simulation. Finally, we modify the existing, open-source, volunteer-computing BOINC software system and deploy it on the globally-distributed PlanetLab testbed network to empirically evaluate that iterative redundancy is self-adaptive and more efficient than existing techniques.
Integrity signals
Registry
Cites
Statistics
Claims the paper makes
The citation lists haven’t been fetched yet
References 52 · Cited by 16
- Authors
- Brun, Y., Bang, J. Y., Edwards, G., & Medvidovic, N.
- Affiliations
- University of Massachusetts Amherst (US)
- University of Southern California (US)
- ORCID
- Brun, Yuriy
- Venue
- IEEE Transactions on Software Engineering
- Published
- 2015-08-01
- Volume
- 41
- Issue
- 8
- Pages
- 764-780
- ISSN
- 0098-5589 (ISSN-L)
- 1939-3520
- OpenAlex
- W2010648791
- Cited by
- 16
- References
- 52
- Citations by year
- 2022: 1 · 2020: 1 · 2019: 1 · 2018: 3 · 2017: 7 · 2016: 3
- FWCI
- 4.97
- Type
- journal article
- Language
- en
- Open access
- closed
- Locations
- IEEE Transactions on Software Engineering (publishedVersion)
- Funders
- DARPA (N66001-11-C-4021)
- IARPA (N66001-13-1-2006)
- National Science Foundation (CCF-1117593, CCF-1218115, CCF-1321141)
- Topics
- Physical Sciences › Computer Science › Computer Networks and Communications › Distributed systems and fault tolerance
- Physical Sciences › Computer Science › Software › Software Reliability and Analysis Research
- Physical Sciences › Computer Science › Computer Networks and Communications › Distributed and Parallel Computing Systems
- Keywords
- self-adaptive systems, resource reliability, Byzantine fault tolerance, resource allocation optimization, BOINC, PlanetLab, volunteer computing
About these checks
Registry, retraction, Cites and statistics results are computed, not judged, with one exception: a printed reference that no index lists is read once by a model before it counts as a citation error. Claims are extracted by a model and kept only when their quote appears verbatim in the text; each cited source is then checked, with a model’s help, for whether it says what the claim relies on. Those verdicts can be wrong — read the claim’s quote and the cited source before relying on one.
Statistics and arithmetic are recomputed, not judged.
Confidence bands are shown only for fields calibrated on our annotated test set. None is calibrated yet, so no band is shown.
What counts as a claim ›How we measure confidence ›How we check this ›
Are you an author, or do you see a problem with this page? Request a review