Author: jbellis
Date: Mon Nov 23 16:46:29 2009
New Revision: 883405

URL: http://svn.apache.org/viewvc?rev=883405&view=rev
Log:
Modify move function to get balanced token at bootstrap time if token given as 
a parameter was null.  patch by Jaakko Laine; reviewed by jbellis for 
CASSANDRA-574

Modified:
    
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java

Modified: 
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
URL: 
http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java?rev=883405&r1=883404&r2=883405&view=diff
==============================================================================
--- 
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
 (original)
+++ 
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
 Mon Nov 23 16:46:29 2009
@@ -1014,16 +1014,20 @@
 
     public void loadBalance() throws IOException, InterruptedException
     {
-        Token token = BootStrapper.getBalancedToken(tokenMetadata_, 
StorageLoadBalancer.instance().getLoadInfo());
-        move(token);
+        move((Token)null);
     }
 
+    /**
+     * move the node to new token or find a new token to boot to according to 
load
+     *
+     * @param token new token to boot to, or if null, find balanced token to 
boot to
+     */
     private void move(final Token token) throws InterruptedException
     {
         if 
(tokenMetadata_.getPendingRanges(FBUtilities.getLocalAddress()).size() > 0)
             throw new UnsupportedOperationException("data is currently moving 
to this node; unable to leave the ring");
 
-        logger_.info("moving to " + token);
+        logger_.info("starting move. leaving token " + getLocalToken());
         Gossiper.instance().addApplicationState(STATE_LEAVING, new 
ApplicationState(getLocalToken().toString()));
         logger_.info("move sleeping " + Streaming.RING_DELAY);
         Thread.sleep(Streaming.RING_DELAY);
@@ -1034,8 +1038,11 @@
             {
                 try
                 {
-                    logger_.info("re-bootstrapping to new token " + token);
-                    startBootstrap(token);
+                    Token bootstrapToken = token;
+                    if (bootstrapToken == null)
+                        bootstrapToken = 
BootStrapper.getBalancedToken(tokenMetadata_, 
StorageLoadBalancer.instance().getLoadInfo());
+                    logger_.info("re-bootstrapping to new token " + 
bootstrapToken);
+                    startBootstrap(bootstrapToken);
                 }
                 catch (IOException e)
                 {


Reply via email to