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();