From e0d4419a2ee59352ec5c66f628cdf1712f6f92e1 Mon Sep 17 00:00:00 2001 From: Brandon Williams Date: Fri, 30 Jul 2010 22:16:02 +0000 Subject: [PATCH] Use LinkedHashSet in location strategies to maintain order. Patch by Jignesh Dhruv reviewed by brandonwilliams for CASSANDRA-1291 git-svn-id: https://svn.apache.org/repos/asf/cassandra/trunk@980983 13f79535-47bb-0310-9956-ffa450edef68 --- .../org/apache/cassandra/locator/DatacenterShardStrategy.java | 2 +- src/java/org/apache/cassandra/locator/RackAwareStrategy.java | 4 ++-- .../org/apache/cassandra/locator/RackUnawareStrategy.java | 4 ++-- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/src/java/org/apache/cassandra/locator/DatacenterShardStrategy.java b/src/java/org/apache/cassandra/locator/DatacenterShardStrategy.java index d9edfa6479..339702d181 100644 --- a/src/java/org/apache/cassandra/locator/DatacenterShardStrategy.java +++ b/src/java/org/apache/cassandra/locator/DatacenterShardStrategy.java @@ -97,7 +97,7 @@ public class DatacenterShardStrategy extends AbstractReplicationStrategy int totalReplicas = getReplicationFactor(table); Map remainingReplicas = new HashMap(datacenters.get(table)); Map> dcUsedRacks = new HashMap>(); - Set endpoints = new HashSet(totalReplicas); + Set endpoints = new LinkedHashSet(totalReplicas); // first pass: only collect replicas on unique racks for (Iterator iter = TokenMetadata.ringIterator(tokenMetadata.sortedTokens(), searchToken); diff --git a/src/java/org/apache/cassandra/locator/RackAwareStrategy.java b/src/java/org/apache/cassandra/locator/RackAwareStrategy.java index 8b50d500b8..d64adb0baf 100644 --- a/src/java/org/apache/cassandra/locator/RackAwareStrategy.java +++ b/src/java/org/apache/cassandra/locator/RackAwareStrategy.java @@ -21,7 +21,7 @@ package org.apache.cassandra.locator; import java.net.InetAddress; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Iterator; import java.util.Set; @@ -47,7 +47,7 @@ public class RackAwareStrategy extends AbstractReplicationStrategy public Set calculateNaturalEndpoints(Token token, TokenMetadata metadata, String table) { int replicas = getReplicationFactor(table); - Set endpoints = new HashSet(replicas); + Set endpoints = new LinkedHashSet(replicas); ArrayList tokens = metadata.sortedTokens(); if (tokens.isEmpty()) diff --git a/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java b/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java index 3ffda5d4c7..ba47f30aa9 100644 --- a/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java +++ b/src/java/org/apache/cassandra/locator/RackUnawareStrategy.java @@ -21,7 +21,7 @@ package org.apache.cassandra.locator; import java.net.InetAddress; import java.util.ArrayList; -import java.util.HashSet; +import java.util.LinkedHashSet; import java.util.Iterator; import java.util.Set; @@ -45,7 +45,7 @@ public class RackUnawareStrategy extends AbstractReplicationStrategy { int replicas = getReplicationFactor(table); ArrayList tokens = metadata.sortedTokens(); - Set endpoints = new HashSet(replicas); + Set endpoints = new LinkedHashSet(replicas); if (tokens.isEmpty()) return endpoints;