You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2009/11/23 17:46:29 UTC
svn commit: r883405 -
/incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
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)
{