Author: jbellis
Date: Wed Dec  1 22:34:15 2010
New Revision: 1041198

URL: http://svn.apache.org/viewvc?rev=1041198&view=rev
Log:
clean up log messages for gossip token notifications (backport from 0.7)

Modified:
    cassandra/branches/cassandra-0.6/CHANGES.txt
    
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageService.java

Modified: cassandra/branches/cassandra-0.6/CHANGES.txt
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/CHANGES.txt?rev=1041198&r1=1041197&r2=1041198&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.6/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.6/CHANGES.txt Wed Dec  1 22:34:15 2010
@@ -10,6 +10,7 @@
  * detect and warn when obsolete version of JNA is present (CASSANDRA-1770)
  * fix live-column-count of slice ranges including tombstoned supercolumn 
    with live subcolumn (CASSANDRA-1591)
+ * clean up log messages for gossip token notifications (CASSANDRA-1518)
 
 
 0.6.8

Modified: 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageService.java?rev=1041198&r1=1041197&r2=1041198&view=diff
==============================================================================
--- 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageService.java
 (original)
+++ 
cassandra/branches/cassandra-0.6/src/java/org/apache/cassandra/service/StorageService.java
 Wed Dec  1 22:34:15 2010
@@ -557,28 +557,48 @@ public class StorageService implements I
      * @param endPoint node
      * @param pieces STATE_NORMAL,token[,other_state,token]
      */
-    private void handleStateNormal(InetAddress endPoint, String[] pieces)
+    private void handleStateNormal(InetAddress endpoint, String[] pieces)
     {
         assert pieces.length >= 2;
-        Token token = 
getPartitioner().getTokenFactory().fromString(pieces[1]);        
+        Token token = getPartitioner().getTokenFactory().fromString(pieces[1]);
 
         if (logger_.isDebugEnabled())
-            logger_.debug("Node " + endPoint + " state normal, token " + 
token);
+            logger_.debug("Node " + endpoint + " state normal, token " + 
token);
 
-        if (tokenMetadata_.isMember(endPoint))
-            logger_.info("Node " + endPoint + " state jump to normal");
+        if (tokenMetadata_.isMember(endpoint))
+            logger_.info("Node " + endpoint + " state jump to normal");
 
         // we don't want to update if this node is responsible for the token 
and it has a later startup time than endpoint.
         InetAddress currentNode = tokenMetadata_.getEndPoint(token);
-        if (currentNode == null || 
Gossiper.instance.compareEndpointStartup(endPoint, currentNode) > 0)
-            tokenMetadata_.updateNormalToken(token, endPoint);
+        if (currentNode == null)
+        {
+            logger_.debug("New node " + endpoint + " at token " + token);
+            tokenMetadata_.updateNormalToken(token, endpoint);
+            if (!isClientMode)
+                SystemTable.updateToken(endpoint, token);
+        }
+        else if (endpoint.equals(currentNode))
+        {
+            // nothing to do
+        }
+        else if (Gossiper.instance.compareEndpointStartup(endpoint, 
currentNode) > 0)
+        {
+            logger_.info(String.format("Nodes %s and %s have the same token 
%s.  %s is the new owner",
+                                       endpoint, currentNode, token, 
endpoint));
+            tokenMetadata_.updateNormalToken(token, endpoint);
+            if (!isClientMode)
+                SystemTable.updateToken(endpoint, token);
+        }
         else
-            logger_.info("Will not change my token ownership to " + endPoint);
-        
+        {
+            logger_.info(String.format("Nodes %s and %s have the same token 
%s.  Ignoring %s",
+                                       endpoint, currentNode, token, 
endpoint));
+        }
+
         if (pieces.length > 2)
         {
             if (REMOVE_TOKEN.equals(pieces[2]))
-            { 
+            {
                 // remove token was called on a dead node.
                 Token tokenThatLeft = 
getPartitioner().getTokenFactory().fromString(pieces[3]);
                 InetAddress endpointThatLeft = 
tokenMetadata_.getEndPoint(tokenThatLeft);
@@ -598,10 +618,8 @@ public class StorageService implements I
                 tokenMetadata_.removeBootstrapToken(tokenThatLeft);
             }
         }
-        
+
         calculatePendingRanges();
-        if (!isClientMode)
-            SystemTable.updateToken(endPoint, token);
     }
 
     /**


Reply via email to