Author: slebresne Date: Tue Nov 8 15:24:57 2011 New Revision: 1199284 URL: http://svn.apache.org/viewvc?rev=1199284&view=rev Log: Fix bug preventing the use of efficient cross-DC writes patch by slebresne; reviewed by jbellis for CASSANDRA-3472
Modified: cassandra/branches/cassandra-0.8/CHANGES.txt cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Modified: cassandra/branches/cassandra-0.8/CHANGES.txt URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/CHANGES.txt?rev=1199284&r1=1199283&r2=1199284&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/CHANGES.txt (original) +++ cassandra/branches/cassandra-0.8/CHANGES.txt Tue Nov 8 15:24:57 2011 @@ -37,6 +37,7 @@ * acquire compactionlock during truncate (CASSANDRA-3399) * fix displaying cfdef entries for super columnfamilies (CASSANDRA-3415) * Make counter shard merging thread safe (CASSANDRA-3178) + * Fix bug preventing the use of efficient cross-DC writes (CASSANDRA-3472) 0.8.7 Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java?rev=1199284&r1=1199283&r2=1199284&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageProxy.java Tue Nov 8 15:24:57 2011 @@ -306,7 +306,7 @@ public class StorageProxy implements Sto // from previous loop iterations message.removeHeader(RowMutation.FORWARD_HEADER); - if (dataCenter.equals(localDataCenter) || StorageService.instance.useEfficientCrossDCWrites()) + if (dataCenter.equals(localDataCenter)) { // direct writes to local DC or old Cassadra versions for (InetAddress destination : messages.getValue()) Modified: cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java URL: http://svn.apache.org/viewvc/cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java?rev=1199284&r1=1199283&r2=1199284&view=diff ============================================================================== --- cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java (original) +++ cassandra/branches/cassandra-0.8/src/java/org/apache/cassandra/service/StorageService.java Tue Nov 8 15:24:57 2011 @@ -194,7 +194,6 @@ public class StorageService implements I private volatile boolean joined = false; private String operationMode; - private volatile boolean efficientCrossDCWrites; private MigrationManager migrationManager = new MigrationManager(); /* Used for tracking drain progress */ @@ -726,9 +725,6 @@ public class StorageService implements I { switch (state) { - case RELEASE_VERSION: - updateEfficientCrossDCWriteMode(); - break; case STATUS: String apStateValue = value.value; String[] pieces = apStateValue.split(VersionedValue.DELIMITER_STR, -1); @@ -752,25 +748,6 @@ public class StorageService implements I } /** - * We can remove this in 0.8, since mixing 0.7.0 with 0.8 is not supported (0.7.1 is required) - */ - private void updateEfficientCrossDCWriteMode() - { - for (Map.Entry<InetAddress, EndpointState> entry : Gossiper.instance.getEndpointStates()) - { - VersionedValue version = entry.getValue().getApplicationState(ApplicationState.RELEASE_VERSION); - - // no version means it's old code that doesn't gossip version, < 0.7.1. - if (version == null) - { - efficientCrossDCWrites = false; - return; - } - } - efficientCrossDCWrites = true; - } - - /** * Handle node bootstrap * * @param endpoint bootstrapping node @@ -2387,11 +2364,6 @@ public class StorageService implements I ((DynamicEndpointSnitch)oldSnitch).unregisterMBean(); } - public boolean useEfficientCrossDCWrites() - { - return efficientCrossDCWrites; - } - /** * Flushes the two largest memtables by ops and by throughput */