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/10/27 15:40:23 UTC
svn commit: r830213 - in
/incubator/cassandra/trunk/src/java/org/apache/cassandra:
locator/AbstractReplicationStrategy.java service/StorageService.java
Author: jbellis
Date: Tue Oct 27 14:40:23 2009
New Revision: 830213
URL: http://svn.apache.org/viewvc?rev=830213&view=rev
Log:
rename getRangeMap -> getRangeAddresses; add inverse getAddressRanges
patch by jbellis; reviewed by goffinet for CASSANDRA-483
Modified:
incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
incubator/cassandra/trunk/src/java/org/apache/cassandra/service/StorageService.java
Modified: incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java
URL: http://svn.apache.org/viewvc/incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java?rev=830213&r1=830212&r2=830213&view=diff
==============================================================================
--- incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (original)
+++ incubator/cassandra/trunk/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java Tue Oct 27 14:40:23 2009
@@ -23,6 +23,8 @@
import org.apache.log4j.Logger;
+import org.apache.commons.lang.StringUtils;
+
import org.apache.cassandra.dht.IPartitioner;
import org.apache.cassandra.dht.Range;
import org.apache.cassandra.dht.Token;
@@ -97,7 +99,7 @@
tokenToEndPointMap.put(t, ep);
try
{
- for (Range r : getRangeMap(tokenToEndPointMap).get(ep))
+ for (Range r : getAddressRanges(tokenToEndPointMap).get(ep))
{
if (r.contains(token))
{
@@ -164,9 +166,9 @@
return map;
}
- // TODO this is pretty inefficient.
+ // TODO this is pretty inefficient. also the inverse (getRangeAddresses) below.
// fixing this probably requires merging tokenmetadata into replicationstrategy, so we can cache/invalidate cleanly
- protected Map<InetAddress, Set<Range>> getRangeMap(Map<Token, InetAddress> tokenMap)
+ public Map<InetAddress, Set<Range>> getAddressRanges(Map<Token, InetAddress> tokenMap)
{
Map<InetAddress, Set<Range>> map = new HashMap<InetAddress, Set<Range>>();
@@ -187,9 +189,27 @@
return map;
}
- public Map<InetAddress, Set<Range>> getRangeMap()
+ public Map<Range, Set<InetAddress>> getRangeAddresses(Map<Token, InetAddress> tokenMap)
+ {
+ Map<Range, Set<InetAddress>> map = new HashMap<Range, Set<InetAddress>>();
+
+ for (Token token : tokenMap.keySet())
+ {
+ Range range = getPrimaryRangeFor(token, tokenMap);
+ HashSet<InetAddress> addresses = new HashSet<InetAddress>();
+ for (InetAddress ep : getNaturalEndpoints(token, tokenMap))
+ {
+ addresses.add(ep);
+ }
+ map.put(range, addresses);
+ }
+
+ return map;
+ }
+
+ public Map<InetAddress, Set<Range>> getAddressRanges()
{
- return getRangeMap(tokenMetadata_.cloneTokenEndPointMap());
+ return getAddressRanges(tokenMetadata_.cloneTokenEndPointMap());
}
public Range getPrimaryRangeFor(Token right, Map<Token, InetAddress> tokenToEndPointMap)
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=830213&r1=830212&r2=830213&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 Tue Oct 27 14:40:23 2009
@@ -670,7 +670,7 @@
*/
Set<Range> getRangesForEndPoint(InetAddress ep)
{
- return replicationStrategy_.getRangeMap().get(ep);
+ return replicationStrategy_.getAddressRanges().get(ep);
}
/**