You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by xe...@apache.org on 2012/02/07 21:56:12 UTC

[7/9] git commit: make SS.getTokenToEndpointMap to sort tokens in ascending order. Patch by Yuki Morishita, reviewed by brandonwilliams for CASSANDRA-3863

make SS.getTokenToEndpointMap to sort tokens in ascending order.
Patch by Yuki Morishita, reviewed by brandonwilliams for CASSANDRA-3863


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

Branch: refs/heads/trunk
Commit: 252287897f18349df3340dbfb3c6040acdcf9ee5
Parents: 58202a8
Author: Brandon Williams <br...@apache.org>
Authored: Tue Feb 7 11:22:55 2012 -0600
Committer: Brandon Williams <br...@apache.org>
Committed: Tue Feb 7 11:22:55 2012 -0600

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageService.java   |    9 ++++++---
 .../cassandra/service/StorageServiceMBean.java     |    2 +-
 src/java/org/apache/cassandra/tools/NodeCmd.java   |    1 -
 3 files changed, 7 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/25228789/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 441a9bc..98c3e7f 100644
--- a/src/java/org/apache/cassandra/service/StorageService.java
+++ b/src/java/org/apache/cassandra/service/StorageService.java
@@ -915,10 +915,13 @@ public class StorageService implements IEndpointStateChangeSubscriber, StorageSe
     public Map<String, String> getTokenToEndpointMap()
     {
         Map<Token, InetAddress> mapInetAddress = tokenMetadata_.getTokenToEndpointMap();
-        Map<String, String> mapString = new HashMap<String, String>(mapInetAddress.size());
-        for (Map.Entry<Token, InetAddress> entry : mapInetAddress.entrySet())
+        // in order to preserve tokens in ascending order, we use LinkedHashMap here
+        Map<String, String> mapString = new LinkedHashMap<String, String>(mapInetAddress.size());
+        List<Token> tokens = new ArrayList<Token>(mapInetAddress.keySet());
+        Collections.sort(tokens);
+        for (Token token : tokens)
         {
-            mapString.put(entry.getKey().toString(), entry.getValue().getHostAddress());
+            mapString.put(token.toString(), mapInetAddress.get(token).getHostAddress());
         }
         return mapString;
     }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/25228789/src/java/org/apache/cassandra/service/StorageServiceMBean.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageServiceMBean.java b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
index 6903cb2..c4c6f52 100644
--- a/src/java/org/apache/cassandra/service/StorageServiceMBean.java
+++ b/src/java/org/apache/cassandra/service/StorageServiceMBean.java
@@ -143,7 +143,7 @@ public interface StorageServiceMBean
      * Retrieve a map of tokens to endpoints, including the bootstrapping
      * ones.
      *
-     * @return a map of tokens to endpoints
+     * @return a map of tokens to endpoints in ascending order
      */
     public Map<String, String> getTokenToEndpointMap();
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/25228789/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 3e47dea..870644b 100644
--- a/src/java/org/apache/cassandra/tools/NodeCmd.java
+++ b/src/java/org/apache/cassandra/tools/NodeCmd.java
@@ -203,7 +203,6 @@ public class NodeCmd
     {
         Map<String, String> tokenToEndpoint = probe.getTokenToEndpointMap();
         List<String> sortedTokens = new ArrayList<String>(tokenToEndpoint.keySet());
-        Collections.sort(sortedTokens);
 
         Collection<String> liveNodes = probe.getLiveNodes();
         Collection<String> deadNodes = probe.getUnreachableNodes();