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 2011/03/11 19:27:48 UTC

svn commit: r1080713 - in /cassandra/branches/cassandra-0.7: CHANGES.txt src/java/org/apache/cassandra/service/StorageProxy.java

Author: jbellis
Date: Fri Mar 11 18:27:48 2011
New Revision: 1080713

URL: http://svn.apache.org/viewvc?rev=1080713&view=rev
Log:
makerange queries respect snitch for local replicas
patch by jbellis; reviewed by slebresne for CASSANDRA-2286

Modified:
    cassandra/branches/cassandra-0.7/CHANGES.txt
    cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java

Modified: cassandra/branches/cassandra-0.7/CHANGES.txt
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1080713&r1=1080712&r2=1080713&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/CHANGES.txt (original)
+++ cassandra/branches/cassandra-0.7/CHANGES.txt Fri Mar 11 18:27:48 2011
@@ -22,6 +22,7 @@
  * reduce memory use during streaming of multiple sstables (CASSANDRA-2301)
  * purge tombstoned rows from cache after GCGraceSeconds (CASSANDRA-2305)
  * allow zero replicas in a NTS datacenter (CASSANDRA-1924)
+ * make range queries respect snitch for local replicas (CASSANDRA-2286)
 
 
 0.7.3

Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java
URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1080713&r1=1080712&r2=1080713&view=diff
==============================================================================
--- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java (original)
+++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/service/StorageProxy.java Fri Mar 11 18:27:48 2011
@@ -484,8 +484,9 @@ public class StorageProxy implements Sto
             for (AbstractBounds range : ranges)
             {
                 List<InetAddress> liveEndpoints = StorageService.instance.getLiveNaturalEndpoints(command.keyspace, range.right);
+                DatabaseDescriptor.getEndpointSnitch().sortByProximity(FBUtilities.getLocalAddress(), liveEndpoints);
 
-                if (consistency_level == ConsistencyLevel.ONE && liveEndpoints.contains(FBUtilities.getLocalAddress())) 
+                if (consistency_level == ConsistencyLevel.ONE && !liveEndpoints.isEmpty() && liveEndpoints.get(0).equals(FBUtilities.getLocalAddress())) 
                 {
                     if (logger.isDebugEnabled())
                         logger.debug("local range slice");
@@ -508,7 +509,6 @@ public class StorageProxy implements Sto
                 }
                 else 
                 {
-                    DatabaseDescriptor.getEndpointSnitch().sortByProximity(FBUtilities.getLocalAddress(), liveEndpoints);
                     RangeSliceCommand c2 = new RangeSliceCommand(command.keyspace, command.column_family, command.super_column, command.predicate, range, command.max_keys);
                     Message message = c2.getMessage();