Details
-
Bug
-
Status: Resolved
-
Low
-
Resolution: Fixed
-
None
-
None
-
Low
Description
As reported on the mailing list (http://mail-archives.apache.org/mod_mbox/cassandra-dev/201104.mbox/%3CAANLkTimdMSLE8-z0x+0kvzqp7za3AEMLaOFXvd4Z=tvc@mail.gmail.com%3E),
I just found there are two implementations of 'cumulative distribution
function' for Exponential Distribution and there are inconsistent :FailureDetector
org.apache.cassandra.gms.ArrivalWindow.p(double) double p(double t) { double mean = mean(); double exponent = (-1)*(t)/mean; return *Math.pow(Math.E, exponent)*; }DynamicEndpointSnitch
org.apache.cassandra.locator.AdaptiveLatencyTracker.p(double) double p(double t) { double mean = mean(); double exponent = (-1) * (t) / mean; return *1 - Math.pow( Math.E, exponent);* }According to the Exponential Distribution cumulative distribution function
definition<http://en.wikipedia.org/wiki/Exponential_distribution#Cumulative_distribution_function>,
the later one is correct
... however FailureDetector has been working as advertised for some time now. Does this mean the Snitch version is actually wrong?