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
      */


Reply via email to