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


Reply via email to