You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@cassandra.apache.org by pprun <pz...@gmail.com> on 2011/04/02 14:12:24 UTC
inconsistent implementation of 'cumulative distribution function' for
Exponential Distribution
Hi Cassandra DEVs,
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 clear, however,
Could you please explain a bit for the implementation of FailureDetector?
Thanks*,
*pzgyuanf*
*
Re: inconsistent implementation of 'cumulative distribution function'
for Exponential Distribution
Posted by Jonathan Ellis <jb...@gmail.com>.
I don't know which is correct. It's possible that both are, because
of differences in how they are used.
Created https://issues.apache.org/jira/browse/CASSANDRA-2597 to look into this.
On Sat, Apr 2, 2011 at 7:12 AM, pprun <pz...@gmail.com> wrote:
> Hi Cassandra DEVs,
>
> 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 clear, however,
> Could you please explain a bit for the implementation of FailureDetector?
>
> Thanks*,
> *pzgyuanf*
> *
>
--
Jonathan Ellis
Project Chair, Apache Cassandra
co-founder of DataStax, the source for professional Cassandra support
http://www.datastax.com