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