<p>Here is a collection of patterns for dealing handling errors in distributed systems:</p>

<ul>
<li><a href="http://www.artechra.com/media/writing/EuroPLOP2004-error-handling.pdf" rel="nofollow">Patterns for Generation, Handling and Management of Errors</a> by Andy Longshaw and Eoin Woods, EuroPlop 2004.</li>
</ul>

<p>Alternatively, for more generic work, there is the book <a href="http://www.amazon.co.uk/Introduction-Reliable-Distributed-Programming-Guerraoui/dp/3540288457/ref=sr_1_1?ie=UTF8&amp;s=books&amp;qid=1286438885&amp;sr=8-1-spell" rel="nofollow">Introduction to Reliable Distributed Programming</a> by Rachid Guerraoui and Luis Rodrigues, which has a vast range of practical algorithms including failure recovery variants of many. The more classical text  <a href="http://rads.stackoverflow.com/amzn/click/1558603484" rel="nofollow">Distributed Algorithms</a> by Nancy Lynch covers similar ground from a more theoretical perspective.</p>

CC BY-SA 3.0
2010-10-07T08:13:32.283Z
2013-10-24T14:26:58.523Z
2013-10-24T14:26:58.523Z
Dave Clarke
<p>What kind of faults in the system?Are you looking for solutions to handling Byzantine faults or just the classic fail-stop model? Solutions in the presence of Byzantine nodes in a distributed system is the more intriguing problem. The problem was formalized by Leslie Lamport(the Byzantine Generals problem' and the 1999 paper by Barbara Liskov and Miguel Castro presents the closest working practical solution ' Practical Byzantine fault-tolerance'. Original formal models to deal with fault-tolerance include the state-machine approach of Fred Schneider and <a href="http://portal.acm.org/citation.cfm?id=62549" rel="nofollow">view-stamped replication</a>
I do agree the question is very general, the field is immense and the theory forms the basis of most systems running today online. Maybe a more specific fault-model and the problem domain would help obtain better answers</p>

CC BY-SA 2.5
2010-10-07T12:32:49.540Z
2010-10-07T12:32:49.540Z
kryptos
<p>You might want to have a look at the works that won Tushar D. Chandra, Vassos Hadzilacos, and Sam Toueg the <a href="http://www.podc.org/dijkstra/2010.html">Edsger W. Dijkstra Prize in 2010</a>:</p>

<ul>
<li>Tushar D. Chandra and Sam Toueg. <a href="http://www.cs.cornell.edu/home/sam/FDpapers/CT96-JACM.ps">Unreliable Failure Detectors for Reliable Distributed Systems</a>, Journal of the ACM, 43(2):225-267, 1996</li>
<li>Tushar D. Chandra, Vassos Hadzilacos and Sam Toueg. <a href="http://www.cs.utexas.edu/~lorenzo/corsi/cs380d/papers/p685-chandra.pdf">The Weakest Failure Detector for Solving Consensus</a>, Journal of the ACM, 43(4):685-722, 1996.</li>
</ul>

<p>These papers introduce the notion of <em>failure detectors</em> in a distributed system in a general and precise framework. Intuitively, they tried to study the minimal amount of failure information needed to solve consensus. It turns out that you don't need a perfect failure detector to solve consensus. Even <em>unreliable</em> failure detectors satisfying certain minimal conditions will suffice for the task. These papers were very influential on how to deal with failures in distributed systems.</p>

CC BY-SA 2.5
2010-10-07T07:59:28.567Z
2010-10-07T12:01:29.640Z
2010-10-07T12:01:29.640Z
Dai Le
<p>What papers on handling errors in distributed systems do you recommend?</p>

CC BY-SA 2.5
2010-10-06T21:40:24.263Z
I am not familiar with the subject, but aren’t there too many?  Also, recommend for what?
Tsuyoshi Ito
CC BY-SA 2.5
2010-10-06T21:48:28.700Z
The question seems to be far too broad; I'd guess that half of *all* papers in distributed computing are somehow related to fault tolerance.
Jukka Suomela
CC BY-SA 2.5
2010-10-07T06:23:19.473Z
definitely too broad. vote to close...
Suresh Venkat
CC BY-SA 2.5
2010-10-07T08:00:11.670Z
Maybe the question is not that bad. I tried to recommend some works below.
Dai Le
CC BY-SA 2.5
2010-10-07T08:04:32.953Z
What do you want more precisely? Failure detectors? Failure recovery? Error Logging?
Dave Clarke
CC BY-SA 2.5
2010-10-07T15:28:58.880Z
Any sub-topic is good. I have to make a presentation at university about fault tolerance. In the end I chose "Unreliable Failure Detectors for Reliable Distributed Systems" which was suggested in one of the answers.
Alexandru
CC BY-SA 2.5
2010-10-07T17:58:44.330Z
The question would have been better if you had originally included this information as motivation.
Dave Clarke
<reference-request><dc.distributed-comp>
Papers on fault handling in distributed systems
Alexandru
# Papers on fault handling in distributed systems

(Asked by: username_0 on 2010-10-06)

What papers on handling errors in distributed systems do you recommend?

**Tags:** reference-request, dc.distributed-comp

> **Comments:**
> **username_1**: I am not familiar with the subject, but aren’t there too many?  Also, recommend for what?  
> **username_2**: The question seems to be far too broad; I'd guess that half of *all* papers in distributed computing are somehow related to fault tolerance.  
> **username_3**: definitely too broad. vote to close...  
> **username_4**: Maybe the question is not that bad. I tried to recommend some works below.  
> **username_5**: What do you want more precisely? Failure detectors? Failure recovery? Error Logging?  
> **username_0**: Any sub-topic is good. I have to make a presentation at university about fault tolerance. In the end I chose "Unreliable Failure Detectors for Reliable Distributed Systems" which was suggested in one of the answers.  
> **username_5**: The question would have been better if you had originally included this information as motivation.  

---

## 3 answers

### Answer by username_4 on 2010-10-07. Score: 8 | Accepted answer

You might want to have a look at the works that won Tushar D. Chandra, Vassos Hadzilacos, and Sam Toueg the [Edsger W. Dijkstra Prize in 2010](http://www.podc.org/dijkstra/2010.html):

* Tushar D. Chandra and Sam Toueg. [Unreliable Failure Detectors for Reliable Distributed Systems](http://www.cs.cornell.edu/home/sam/FDpapers/CT96-JACM.ps), Journal of the ACM, 43(2):225-267, 1996
* Tushar D. Chandra, Vassos Hadzilacos and Sam Toueg. [The Weakest Failure Detector for Solving Consensus](http://www.cs.utexas.edu/~lorenzo/corsi/cs380d/papers/p685-chandra.pdf), Journal of the ACM, 43(4):685-722, 1996.

These papers introduce the notion of *failure detectors* in a distributed system in a general and precise framework. Intuitively, they tried to study the minimal amount of failure information needed to solve consensus. It turns out that you don't need a perfect failure detector to solve consensus. Even *unreliable* failure detectors satisfying certain minimal conditions will suffice for the task. These papers were very influential on how to deal with failures in distributed systems.


---

### Answer by username_5 on 2010-10-07. Score: 3

Here is a collection of patterns for dealing handling errors in distributed systems:

* [Patterns for Generation, Handling and Management of Errors](http://www.artechra.com/media/writing/EuroPLOP2004-error-handling.pdf) by Andy Longshaw and Eoin Woods, EuroPlop 2004.

Alternatively, for more generic work, there is the book [Introduction to Reliable Distributed Programming](http://www.amazon.co.uk/Introduction-Reliable-Distributed-Programming-Guerraoui/dp/3540288457/ref=sr_1_1?ie=UTF8&s=books&qid=1286438885&sr=8-1-spell) by Rachid Guerraoui and Luis Rodrigues, which has a vast range of practical algorithms including failure recovery variants of many. The more classical text [Distributed Algorithms](http://rads.stackoverflow.com/amzn/click/1558603484) by Nancy Lynch covers similar ground from a more theoretical perspective.


---

### Answer by username_6 on 2010-10-07. Score: 3

What kind of faults in the system?Are you looking for solutions to handling Byzantine faults or just the classic fail-stop model? Solutions in the presence of Byzantine nodes in a distributed system is the more intriguing problem. The problem was formalized by Leslie Lamport(the Byzantine Generals problem' and the 1999 paper by Barbara Liskov and Miguel Castro presents the closest working practical solution ' Practical Byzantine fault-tolerance'. Original formal models to deal with fault-tolerance include the state-machine approach of Fred Schneider and [view-stamped replication](http://portal.acm.org/citation.cfm?id=62549)
I do agree the question is very general, the field is immense and the theory forms the basis of most systems running today online. Maybe a more specific fault-model and the problem domain would help obtain better answers


---

