Cited by 16Distributed systems and fault toleranceSoftware Reliability and Analysis ResearchDistributed and Parallel Computing Systems

Self-Adapting Reliability in Distributed Software Systems

Brun, Yuriy, Bang, Jae young, Edwards, George, Medvidovic, Nenad·2015·IEEE Transactions on Software Engineering

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

Crossref · 10.1109/tse.2015.2412134

Cites

Statistics

Recomputing p-values needs the paper’s full text.

Claims the paper makes

This paper’s full text isn’t openly available, so its claims and self-check weren’t run. The registry and citation checks still apply.

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)
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