Author: jbellis Date: Thu Apr 21 15:18:30 2011 New Revision: 1095747 URL: http://svn.apache.org/viewvc?rev=1095747&view=rev Log: support LOCAL_QUORUM, EACH_QUORUM CLs outside of NTS patch by jbellis; reviewed by slebresne for CASSANDRA-2516
Modified: cassandra/branches/cassandra-0.7/CHANGES.txt cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java Modified: cassandra/branches/cassandra-0.7/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/CHANGES.txt?rev=1095747&r1=1095746&r2=1095747&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.7/CHANGES.txt Thu Apr 21 15:18:30 2011 @@ -36,6 +36,7 @@ (CASSANDRA-2519) * fixes for verifying destination availability under hinted conditions so UE can be thrown intead of timing out (CASSANDRA-2514) + * support LOCAL_QUORUM, EACH_QUORUM CLs outside of NTS (CASSANDRA-2516) 0.7.4 Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java?rev=1095747&r1=1095746&r2=1095747&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/AbstractReplicationStrategy.java Thu Apr 21 15:18:30 2011 @@ -122,9 +122,18 @@ public abstract class AbstractReplicatio public IWriteResponseHandler getWriteResponseHandler(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, - ConsistencyLevel consistencyLevel) + ConsistencyLevel consistency_level) { - return WriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistencyLevel, table); + if (consistency_level == ConsistencyLevel.LOCAL_QUORUM) + { + // block for in this context will be localnodes block. + return DatacenterWriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table); + } + else if (consistency_level == ConsistencyLevel.EACH_QUORUM) + { + return DatacenterSyncWriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table); + } + return WriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table); } public int getReplicationFactor() Modified: cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java?rev=1095747&r1=1095746&r2=1095747&view=diff ============================================================================== --- cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java (original) +++ cassandra/branches/cassandra-0.7/src/java/org/apache/cassandra/locator/NetworkTopologyStrategy.java Thu Apr 21 15:18:30 2011 @@ -143,25 +143,4 @@ public class NetworkTopologyStrategy ext { return datacenters.keySet(); } - - /** - * This method will generate the QRH object and returns. If the Consistency - * level is LOCAL_QUORUM then it will return a DCQRH with a map of local rep - * factor alone. If the consistency level is EACH_QUORUM then it will - * return a DCQRH with a map of all the DC rep factor. - */ - @Override - public IWriteResponseHandler getWriteResponseHandler(Collection<InetAddress> writeEndpoints, Multimap<InetAddress, InetAddress> hintedEndpoints, ConsistencyLevel consistency_level) - { - if (consistency_level == ConsistencyLevel.LOCAL_QUORUM) - { - // block for in this context will be localnodes block. - return DatacenterWriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table); - } - else if (consistency_level == ConsistencyLevel.EACH_QUORUM) - { - return DatacenterSyncWriteResponseHandler.create(writeEndpoints, hintedEndpoints, consistency_level, table); - } - return super.getWriteResponseHandler(writeEndpoints, hintedEndpoints, consistency_level); - } }