<p>There is a lot that needs to be clarified about the model (ping) in which we want to evaluate. What are the processes IDs ? Is it IPs (IP network) ? Is the IPs permanent ? Can the IP change ? Are they connected point wise or there is a router/switch ? Can the switch fail ? Are the connections trusted or can a connection fail between two correct processes ? </p>

<p>I'll give counter examples assuming the TCP/IP model, where there are not permanent IPs (DHCP based IP configuration).</p>

<p><strong>Strong completeness</strong> requires that every process that crashes is permanently suspected by <em>every</em> correct process. </p>

<p><strong>Counter-example:</strong> Take process A and B, with IPs IP1 and IP2. Process A crashes permanently, releasing the IP. Process B makes a brief disconnection and acquires a new IP, which happen to be IP1. </p>

<p><strong>Solution:</strong> We must assume IPs are strictly bound to each process, and can never change. Unless you identify processes with other application layer unique IDs.</p>

<p><strong>Weak accuracy</strong> requires some correct processes are never suspected. Actually, if the switch/router fails for a few minutes, every process might suspect all other processes, even if all of them are correct.</p>

<p>The ping is delusive  because it is on the IP level. To avoid these complexities and be able to reduce the needed assumptions to a minimum, think about some level of abstraction, like an application-level failure detector. However if you will really get down to the details, there is a lot to consider in the physical layer (wifi, ethernet) and on other layers as well (TCP, UDP, NAT) etc.</p>

CC BY-SA 2.5
2010-10-25T15:14:49.923Z
2010-10-25T15:14:49.923Z
Mohammad Alaggan
<p>I was reading 'Unreliable Failure Detectors for Reliable Distributed Systems' (<a href="http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.1159&amp;rep=rep1&amp;type=pdf" rel="nofollow">PDF</a>) and I was wondering if ping (with increasing timeouts in case of failure) is in class S of failure detectors:</p>

<ul>
<li>strong completeness</li>
<li>weak accuracy</li>
</ul>

CC BY-SA 2.5
2010-10-12T16:14:33.243Z
PDF link added. Hope you don't mind. :)
Daniel Apon
CC BY-SA 2.5
2010-10-12T16:42:36.110Z
Alexandru: it would help the question if you could make it a little more self-contained: could you specify formally the model of increasing timeout (is it exponential?) and the definitions of strong completeness and weak accuracy ?
Suresh Venkat
<dc.distributed-comp>
Has ping based failure detector 'strong completeness' and 'weak accuracy'?
Alexandru
# Has ping based failure detector 'strong completeness' and 'weak accuracy'?

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

I was reading 'Unreliable Failure Detectors for Reliable Distributed Systems' ([PDF](http://citeseerx.ist.psu.edu/viewdoc/download?doi=10.1.1.18.1159&rep=rep1&type=pdf)) and I was wondering if ping (with increasing timeouts in case of failure) is in class S of failure detectors:

* strong completeness
* weak accuracy

**Tags:** dc.distributed-comp
> **Comments:**
> **username_1**: PDF link added. Hope you don't mind. :)  
> **username_2**: Alexandru: it would help the question if you could make it a little more self-contained: could you specify formally the model of increasing timeout (is it exponential?) and the definitions of strong completeness and weak accuracy ?  

---

## 1 answers

### Answer by username_3 on 2010-10-25. Score: 5 | Accepted answer

There is a lot that needs to be clarified about the model (ping) in which we want to evaluate. What are the processes IDs ? Is it IPs (IP network) ? Is the IPs permanent ? Can the IP change ? Are they connected point wise or there is a router/switch ? Can the switch fail ? Are the connections trusted or can a connection fail between two correct processes ?

I'll give counter examples assuming the TCP/IP model, where there are not permanent IPs (DHCP based IP configuration).

**Strong completeness** requires that every process that crashes is permanently suspected by *every* correct process.

**Counter-example:** Take process A and B, with IPs IP1 and IP2. Process A crashes permanently, releasing the IP. Process B makes a brief disconnection and acquires a new IP, which happen to be IP1.

**Solution:** We must assume IPs are strictly bound to each process, and can never change. Unless you identify processes with other application layer unique IDs.

**Weak accuracy** requires some correct processes are never suspected. Actually, if the switch/router fails for a few minutes, every process might suspect all other processes, even if all of them are correct.

The ping is delusive because it is on the IP level. To avoid these complexities and be able to reduce the needed assumptions to a minimum, think about some level of abstraction, like an application-level failure detector. However if you will really get down to the details, there is a lot to consider in the physical layer (wifi, ethernet) and on other layers as well (TCP, UDP, NAT) etc.


---

