cassandra-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Jonathan Ellis (JIRA)" <j...@apache.org>
Subject [jira] Assigned: (CASSANDRA-12) Gossiper should set the Node is dead when notifies the subscriber
Date Fri, 10 Apr 2009 14:43:15 GMT

     [ https://issues.apache.org/jira/browse/CASSANDRA-12?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]

Jonathan Ellis reassigned CASSANDRA-12:
---------------------------------------

    Assignee: Avinash Lakshman

> Gossiper should set the Node is dead when notifies the subscriber
> -----------------------------------------------------------------
>
>                 Key: CASSANDRA-12
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-12
>             Project: Cassandra
>          Issue Type: Bug
>            Reporter: zhu han
>            Assignee: Avinash Lakshman
>   Original Estimate: 0.02h
>  Remaining Estimate: 0.02h
>
> When the gossiper is notified by Failure Detector that one node is dead, it would tell
the storage service by the onChange() cacallback. However, the gossiper doesn't set the EndPointState
to be dead. Please check following code snippet from Gossiper.java
>     public void suspect(EndPoint endpoint)
>     {
>         EndPointState epState = endPointStateMap_.get(endpoint);
>         if ( epState.isAlive() )
>         {
>             logger_.info("EndPoint " + endpoint + " is now dead.");
>             isAlive(endpoint, epState, false);
>             /* Notify an endpoint is dead to interested parties. */
>             EndPointState deltaState = new EndPointState(epState.getHeartBeatState());
>            /* add deltaState.isAlive(false); here */
>             doNotifications(endpoint, deltaState);
>         }
> And the storage service would detect it as the node comes back after network partition
and start a hinted transmit. Please see the code snippet in StorageService.java
>         else --> if( nodeIdState == null)
>         {
>             /*
>              * If we are here and if this node is UP and already has an entry
>              * in the token map. It means that the node was behind a network partition.
>             */
>             if ( epState.isAlive() && tokenMetadata_.isKnownEndPoint(endpoint)
)
>             {
>                 logger_.debug("EndPoint " + ep + " just recovered from a partition. Sending
hinted data.");
>                 doBootstrap(ep, BootstrapMode.HINT);
>             }
>         }

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message