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