Improve phi in AccrualFailureDetector
Current implementation is an simplification, using only mean value of the intervals. Investigate how it should be implemented according to the paper.
If we decide that mean is good enough we should remove current deviation calculation.
Jonas comment:
"Another thing is how we use the FD. Ideally we want to use the actual phi value and react differently depending on how likely the node is down. That's the whole idea, that it is not a matter of true/false. It is ok as it is now, but we have the option of being more fine-grained in the decisions later. "
If we decide that mean is good enough we should remove current deviation calculation.
Jonas comment:
"Another thing is how we use the FD. Ideally we want to use the actual phi value and react differently depending on how likely the node is down. That's the whole idea, that it is not a matter of true/false. It is ok as it is now, but we have the option of being more fine-grained in the decisions later. "
Leave a comment
on 2012-06-11 13:11 *
By Patrik Nordwall
I started to look at this while doing #2214, but I didn't change anything because I was uncertain of what to use.
The background of the very simple phi calculation is described here https://issues.apache.org/jira/browse/CASSANDRA-2597
It is based on exponential distribution, but with heartbeats at regular interval that might not be appropriate any more and we should look at how to implement it for normal distribution. I think it would be possible to do the real thing with commons-math NormalDistribution, but that is probably to heavyweight. We should look for some approximation.
The background of the very simple phi calculation is described here https://issues.apache.org/jira/browse/CASSANDRA-2597
It is based on exponential distribution, but with heartbeats at regular interval that might not be appropriate any more and we should look at how to implement it for normal distribution. I think it would be possible to do the real thing with commons-math NormalDistribution, but that is probably to heavyweight. We should look for some approximation.
on 2012-06-11 21:26 *
By Jonas Bonér
Is this the next ticket you will fix?
Should also reimpl algo according to original paper.
on 2012-06-12 10:08 *
By Patrik Nordwall
As I wrote above, I started to look at it, but it's not a quick fix, needs some research. I can do it, but its not Highest.
on 2012-06-12 10:37 *
By Jonas Bonér
Ok. As long as it is not related to failing tests. You decide.
on 2012-06-19 10:34 *
By Patrik Nordwall
(In revision:410fd6ca58d8bd444d18b6f047f06962566a9ee7) Improve phi in AccrualFailureDetector, see #2066
Branch: wip-2066-phi-patriknw
- Implementation of phi according to the paper
- Config properties and documentation, min-std-deviation,
- acceptable-lost-heartbeats
- Restructure code, HeartbeatHistory is responsible for
- Correct and efficient calculation of mean and standard
- More tests
Branch: wip-2066-phi-patriknw
on 2012-06-20 09:11 *
By Patrik Nordwall
(In revision:e02310847129d456dd726528ade3500f0786c68f) Incorporated feedback from review, see #2066
Branch: wip-2066-phi-patriknw
Branch: wip-2066-phi-patriknw
on 2012-06-20 09:24 *
By Patrik Nordwall
(In revision:410fd6ca58d8bd444d18b6f047f06962566a9ee7) Improve phi in AccrualFailureDetector, see #2066
Branch: master
- Implementation of phi according to the paper
- Config properties and documentation, min-std-deviation,
- acceptable-lost-heartbeats
- Restructure code, HeartbeatHistory is responsible for
- Correct and efficient calculation of mean and standard
- More tests
Branch: master
on 2012-06-20 09:24 *
By Patrik Nordwall
(In revision:e02310847129d456dd726528ade3500f0786c68f) Incorporated feedback from review, see #2066
Branch: master
Branch: master
on 2012-06-20 09:25 *
By Patrik Nordwall
(In revision:09e92b6bd98e7926875ff561b9562974359e6d43) Merge pull request #550 from akka/wip-2066-phi-patriknw
Improve phi in AccrualFailureDetector, see #2066
Branch: master
Improve phi in AccrualFailureDetector, see #2066
Branch: master
Updating tickets (#620, #679, #725, #750, #752, #753, #754, #763, #789, #870, #893, #922, #953, #954, #971, #977, #983, #985, #987, #991, #1026, #1045, #1051, #1060, #1061, #1084, #1098, #1099, #1133, #1134, #1135, #1136, #1137, #1194, #1225, #1226, #1243, #1245, #1247, #1248, #1254, #1261, #1300, #1317, #1391, #1412, #1791, #1793, #1901, #1908, #1911, #1912, #1913, #1914, #1915, #1916, #1917, #1922, #1983, #1987, #1996, #1997, #1998, #2066, #2077, #2105, #2117, #2133, #2143, #2149, #2151, #2152, #2153, #2155, #2157, #2158, #2159, #2160, #2161, #2162, #2163, #2164, #2165, #2167, #2171, #2175, #2176, #2177, #2180, #2182, #2184, #2185, #2193, #2199, #2202, #2204, #2206, #2207, #2209, #2210)