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

Brandon Williams commented on CASSANDRA-2961:
---------------------------------------------

This sounds good, a couple of points though:

bq. for all other STATUS, call the gossiper to remove the endpoint into 
expireTimeEndpointMap if it is present.

REMOVED_TOKEN and STATUS_LEFT are the only states we need to worry about 
expiring.

bq. Gossiper, when doing status check for each endpoint, verifying if there is 
an expireTime in expireTimeEndpointMap for this endpoint, if so, we have an 
expireTime, if not, expireTime is set with aVeryLongTime. test and evict if 
necessary the endpoint.

I think if there is no expireTime we should just respect aVLT as we currently 
do, instead of populating expireTimeEndpointMap.  That way when debugging we 
can tell if the remote side gave us an expireTime or not, otherwise it won't be 
distinguishable.


> Expire dead gossip states based on time
> ---------------------------------------
>
>                 Key: CASSANDRA-2961
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-2961
>             Project: Cassandra
>          Issue Type: Improvement
>            Reporter: Brandon Williams
>             Fix For: 1.0
>
>
> Currently dead states are held until aVeryLongTime, 3 days.  The problem is 
> that if a node reboots within this period, it begins a new 3 days and will 
> repopulate the ring with the dead state.  While mostly harmless, perpetuating 
> the state forever is at least wasting a small amount of bandwidth.  Instead, 
> we can expire states based on a ttl, which will require that the cluster be 
> loosely time synced; within the quarantine period of 60s.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to