You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by br...@apache.org on 2014/02/06 20:13:41 UTC

[1/3] git commit: Add nodetool taketoken to relocate vnodes. Patch by brandonwilliams reviewed by jbellis for CASSANDRA-4445

Updated Branches:
  refs/heads/cassandra-2.0 21036468c -> 5f64af63a
  refs/heads/trunk ad8cea4ea -> ac666706d


Add nodetool taketoken to relocate vnodes.
Patch by brandonwilliams reviewed by jbellis for CASSANDRA-4445


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f64af63
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f64af63
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f64af63

Branch: refs/heads/cassandra-2.0
Commit: 5f64af63ae063c055c214d8925098f34f4111474
Parents: 2103646
Author: Brandon Williams <br...@apache.org>
Authored: Thu Feb 6 13:00:24 2014 -0600
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Feb 6 13:00:24 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                | 1 +
 src/java/org/apache/cassandra/service/StorageService.java  | 3 +++
 src/java/org/apache/cassandra/tools/NodeCmd.java           | 6 ++++++
 src/java/org/apache/cassandra/tools/NodeProbe.java         | 5 +++++
 src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml | 3 +++
 5 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ceb25c3..6e3c2c2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.6
+ * Add nodetool taketoken to relocate vnodes (CASSANDRA-4445)
  * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
  * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
  * Expose bulk loading progress over JMX (CASSANDRA-4757)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 26846e7..e181c44 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -3098,6 +3098,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             for (String srcT : srcTokens)
             {
                 getPartitioner().getTokenFactory().validate(srcT);
+                Token token = getPartitioner().getTokenFactory().fromString(srcT);
+                if (tokenMetadata.getTokens(tokenMetadata.getEndpoint(token)).size() < 2)
+                    throw new IOException("Cannot relocate " + srcT + "; source node would have no tokens left");
                 tokens.add(getPartitioner().getTokenFactory().fromString(srcT));
             }
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java
index fd7b69b..f3cd563 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -169,6 +169,7 @@ public class NodeCmd
         STATUSTHRIFT,
         STOP,
         STOPDAEMON,
+        TAKETOKEN,
         TPSTATS,
         TRUNCATEHINTS,
         UPGRADESSTABLES,
@@ -1315,6 +1316,11 @@ public class NodeCmd
                     probe.setTraceProbability(Double.parseDouble(arguments[0]));
                     break;
 
+                case TAKETOKEN:
+                    if (arguments.length < 1) { badUse("Must supply at least one token to take"); }
+                    probe.takeTokens(arguments);
+                    break;
+
                 case REBUILD :
                     if (arguments.length > 1) { badUse("Too many arguments."); }
                     probe.rebuild(arguments.length == 1 ? arguments[0] : null);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java
index 0fbb12a..ffd6203 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -471,6 +471,11 @@ public class NodeProbe
         ssProxy.move(newToken);
     }
 
+    public void takeTokens(String[] tokens) throws IOException
+    {
+        ssProxy.relocate(Arrays.asList(tokens));
+    }
+
     public void removeNode(String token)
     {
         ssProxy.removeNode(token);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
----------------------------------------------------------------------
diff --git a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml b/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
index b28e300..8eacf2f 100644
--- a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
+++ b/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
@@ -115,6 +115,9 @@ commands:
   - name: move <new token>
     help: |
       Move node on the token ring to a new token. (for negative tokens, use \\ to escape, Example: move \\-123)
+  - name: taketoken <token, ...>
+    help: |
+      Move the token(s) from the existing owner(s) to this node.  For vnodes only.  Use \\ to escape negative tokens.
   - name: removenode status|force|<ID>
     help: |
       Show status of current node removal, force completion of pending removal or remove provided ID


[2/3] git commit: Add nodetool taketoken to relocate vnodes. Patch by brandonwilliams reviewed by jbellis for CASSANDRA-4445

Posted by br...@apache.org.
Add nodetool taketoken to relocate vnodes.
Patch by brandonwilliams reviewed by jbellis for CASSANDRA-4445


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/5f64af63
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/5f64af63
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/5f64af63

Branch: refs/heads/trunk
Commit: 5f64af63ae063c055c214d8925098f34f4111474
Parents: 2103646
Author: Brandon Williams <br...@apache.org>
Authored: Thu Feb 6 13:00:24 2014 -0600
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Feb 6 13:00:24 2014 -0600

----------------------------------------------------------------------
 CHANGES.txt                                                | 1 +
 src/java/org/apache/cassandra/service/StorageService.java  | 3 +++
 src/java/org/apache/cassandra/tools/NodeCmd.java           | 6 ++++++
 src/java/org/apache/cassandra/tools/NodeProbe.java         | 5 +++++
 src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml | 3 +++
 5 files changed, 18 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index ceb25c3..6e3c2c2 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 2.0.6
+ * Add nodetool taketoken to relocate vnodes (CASSANDRA-4445)
  * Fix upgradesstables NPE for non-CF-based indexes (CASSANDRA-6645)
  * Improve nodetool cfhistograms formatting (CASSANDRA-6360)
  * Expose bulk loading progress over JMX (CASSANDRA-4757)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/java/org/apache/cassandra/service/StorageService.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageService.java b/src/java/org/apache/cassandra/service/StorageService.java
index 26846e7..e181c44 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -3098,6 +3098,9 @@ public class StorageService extends NotificationBroadcasterSupport implements IE
             for (String srcT : srcTokens)
             {
                 getPartitioner().getTokenFactory().validate(srcT);
+                Token token = getPartitioner().getTokenFactory().fromString(srcT);
+                if (tokenMetadata.getTokens(tokenMetadata.getEndpoint(token)).size() < 2)
+                    throw new IOException("Cannot relocate " + srcT + "; source node would have no tokens left");
                 tokens.add(getPartitioner().getTokenFactory().fromString(srcT));
             }
         }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/java/org/apache/cassandra/tools/NodeCmd.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeCmd.java b/src/java/org/apache/cassandra/tools/NodeCmd.java
index fd7b69b..f3cd563 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -169,6 +169,7 @@ public class NodeCmd
         STATUSTHRIFT,
         STOP,
         STOPDAEMON,
+        TAKETOKEN,
         TPSTATS,
         TRUNCATEHINTS,
         UPGRADESSTABLES,
@@ -1315,6 +1316,11 @@ public class NodeCmd
                     probe.setTraceProbability(Double.parseDouble(arguments[0]));
                     break;
 
+                case TAKETOKEN:
+                    if (arguments.length < 1) { badUse("Must supply at least one token to take"); }
+                    probe.takeTokens(arguments);
+                    break;
+
                 case REBUILD :
                     if (arguments.length > 1) { badUse("Too many arguments."); }
                     probe.rebuild(arguments.length == 1 ? arguments[0] : null);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/java/org/apache/cassandra/tools/NodeProbe.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/tools/NodeProbe.java b/src/java/org/apache/cassandra/tools/NodeProbe.java
index 0fbb12a..ffd6203 100644
--- a/src/java/org/apache/cassandra/tools/NodeProbe.java
+++ b/src/java/org/apache/cassandra/tools/NodeProbe.java
@@ -471,6 +471,11 @@ public class NodeProbe
         ssProxy.move(newToken);
     }
 
+    public void takeTokens(String[] tokens) throws IOException
+    {
+        ssProxy.relocate(Arrays.asList(tokens));
+    }
+
     public void removeNode(String token)
     {
         ssProxy.removeNode(token);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/5f64af63/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
----------------------------------------------------------------------
diff --git a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml b/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
index b28e300..8eacf2f 100644
--- a/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
+++ b/src/resources/org/apache/cassandra/tools/NodeToolHelp.yaml
@@ -115,6 +115,9 @@ commands:
   - name: move <new token>
     help: |
       Move node on the token ring to a new token. (for negative tokens, use \\ to escape, Example: move \\-123)
+  - name: taketoken <token, ...>
+    help: |
+      Move the token(s) from the existing owner(s) to this node.  For vnodes only.  Use \\ to escape negative tokens.
   - name: removenode status|force|<ID>
     help: |
       Show status of current node removal, force completion of pending removal or remove provided ID


[3/3] git commit: Merge branch 'cassandra-2.0' into trunk

Posted by br...@apache.org.
Merge branch 'cassandra-2.0' into trunk


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/ac666706
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/ac666706
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/ac666706

Branch: refs/heads/trunk
Commit: ac666706d7b8ab67fb14423f02471d37f5e3b226
Parents: ad8cea4 5f64af6
Author: Brandon Williams <br...@apache.org>
Authored: Thu Feb 6 13:11:40 2014 -0600
Committer: Brandon Williams <br...@apache.org>
Committed: Thu Feb 6 13:11:40 2014 -0600

----------------------------------------------------------------------

----------------------------------------------------------------------