[ 
https://issues.apache.org/jira/browse/GOSSIP-74?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15924376#comment-15924376
 ] 

Maxim Rusak commented on GOSSIP-74:
-----------------------------------

      if (latestHeartbeatMs != -1){
        descriptiveStatistics.addValue(now - latestHeartbeatMs);
      } else {
        latestHeartbeatMs = now;
      }

This code shows that latestHeartbeatMs is setted once for FailureDetector, then 
we add deltas from this first moment of time. So for (1,2,3,4,5) we get 
(1,2,3,4) not (1,1,1,1) it's critical. Algorithm works absolutely incorrect


> Critical bugs in FailureDetector
> --------------------------------
>
>                 Key: GOSSIP-74
>                 URL: https://issues.apache.org/jira/browse/GOSSIP-74
>             Project: Gossip
>          Issue Type: Bug
>            Reporter: Maxim Rusak
>            Assignee: Maxim Rusak
>
> Now FailureDetector have (at least) 2 bugs (in comparation to original paper):
> 1. latestHeartbeatMs don't update on each HeartBeat. So we have 
> descriptiveStatistics consisted not from deltas between heartbeats but from 
> time periods from first heartbeats.
> 2. when we create normalDistribution we pass variation, not standard 
> deviation.
> They make FailureDetector totally indifferent due to extremely high deviation.
> Example: http://pastebin.com/xaeF52PP
> Here we send 100 heartbeats, one per second(for example), then we check the 
> state after 2000 seconds, and comparing to threshold it's still alive.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to