You are viewing a plain text version of this content. The canonical link for it is here.
Posted to user@cassandra.apache.org by Maki Watanabe <wa...@gmail.com> on 2012/01/21 09:20:59 UTC

Proposal to lower the minimum limit for phi_convict_threshold

Hello,
The current trunk limit the value of phi_convict_threshold from 5 to 16
in DatabaseDescriptor.java.
And phi value is calculated in FailureDetector.java as

  PHI_FACTOR x time_since_last_gossip / mean_heartbeat_interval

And the PHI_FACTOR is a predefined value:
PHI_FACTOR = 1 / Log(10) =~ 0.43

So if you use default phi_convict_threshold = 8, it means FailureDetector
wait for 8 / 0.43 = 18.6 times of "missing heartbeats" before it detects
node failure.

Even if you set the minimum value 5, it needs 5 / 0.43 = 11.6 heartbeat
miss for failure detection.
I think it is a bit much for cassandra ring which build on reliable network
in single datacenter.
If DatabaseDescriptor.java will accepts smaller phi_convict_threshold,
we will be able to configure cassandra to detect failure rapidly ( or
shoot my foot ).
Anyway, I can't find any reason to limit minimum value of phi_convict_threshold
to 5.

maki

Re: Proposal to lower the minimum limit for phi_convict_threshold

Posted by Radim Kolar <hs...@sendmail.cz>.
Anyway, I can't find any reason to limit minimum value of 
phi_convict_threshold to 5. maki
In real world you often want to have 9 because cassandra is too much 
sensitive to overloaded LAN and nodes are flipping up/down often and 
creating chaos in cluster if you have larger number of nodes (let say 
30) because state changes are not propagating too quickly.