You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by jb...@apache.org on 2012/01/05 21:00:30 UTC

[41/50] [abbrv] git commit: remove nonlocal DC write optimization patch by Vijay; reviewed by jbellis for CASSANDRA-3577

remove nonlocal DC write optimization
patch by Vijay; reviewed by jbellis for CASSANDRA-3577

git-svn-id: https://svn.apache.org/repos/asf/cassandra/branches/cassandra-0.8@1210902 13f79535-47bb-0310-9956-ffa450edef68


Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo
Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/8480f06e
Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/8480f06e
Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/8480f06e

Branch: refs/heads/trunk
Commit: 8480f06e324e0bc2e042b7c1c483e08132d81eb4
Parents: 41ef1b5
Author: Jonathan Ellis <jb...@apache.org>
Authored: Tue Dec 6 13:28:33 2011 +0000
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Tue Dec 6 13:28:33 2011 +0000

----------------------------------------------------------------------
 CHANGES.txt                                        |    2 +
 .../org/apache/cassandra/service/StorageProxy.java |   36 ++-------------
 2 files changed, 6 insertions(+), 32 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/8480f06e/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index e7b7d9d..c93a6de 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,5 +1,7 @@
 0.8.9
  * use cannonical host for local node in nodetool info (CASSANDRA-3556)
+ * remove nonlocal DC write optimization since it only worked with
+   CL.ONE or CL.LOCAL_QUORUM (CASSANDRA-3577)
 
 
 0.8.8

http://git-wip-us.apache.org/repos/asf/cassandra/blob/8480f06e/src/java/org/apache/cassandra/service/StorageProxy.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/service/StorageProxy.java b/src/java/org/apache/cassandra/service/StorageProxy.java
index 153744a..e78c175 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -296,8 +296,6 @@ public class StorageProxy implements StorageProxyMBean
     {
         for (Map.Entry<String, Multimap<Message, InetAddress>> entry: dcMessages.entrySet())
         {
-            String dataCenter = entry.getKey();
-
             // send the messages corresponding to this datacenter
             for (Map.Entry<Message, Collection<InetAddress>> messages: entry.getValue().asMap().entrySet())
             {
@@ -306,36 +304,10 @@ public class StorageProxy implements StorageProxyMBean
                 // from previous loop iterations
                 message.removeHeader(RowMutation.FORWARD_HEADER);
 
-                if (dataCenter.equals(localDataCenter))
-                {
-                    // direct writes to local DC or old Cassadra versions
-                    for (InetAddress destination : messages.getValue())
-                        MessagingService.instance().sendRR(message, destination, handler);
-                }
-                else
-                {
-                    // Non-local DC. First endpoint in list is the destination for this group
-                    Iterator<InetAddress> iter = messages.getValue().iterator();
-                    InetAddress target = iter.next();
-                    // Add all the other destinations of the same message as a header in the primary message.
-                    while (iter.hasNext())
-                    {
-                        InetAddress destination = iter.next();
-                        // group all nodes in this DC as forward headers on the primary message
-                        ByteArrayOutputStream bos = new ByteArrayOutputStream();
-                        DataOutputStream dos = new DataOutputStream(bos);
-
-                        // append to older addresses
-                        byte[] previousHints = message.getHeader(RowMutation.FORWARD_HEADER);
-                        if (previousHints != null)
-                            dos.write(previousHints);
-
-                        dos.write(destination.getAddress());
-                        message.setHeader(RowMutation.FORWARD_HEADER, bos.toByteArray());
-                    }
-                    // send the combined message + forward headers
-                    MessagingService.instance().sendRR(message, target, handler);
-                }
+                // direct writes to everything -- optimized nonlocal DC writes are
+                // postponed to 1.1; see CASSANDRA-3577
+                for (InetAddress destination : messages.getValue())
+                    MessagingService.instance().sendRR(message, destination, handler);
             }
         }
     }