Repository: cassandra
Updated Branches:
  refs/heads/cassandra-3.0 762db4742 -> 16498de42


Fix Verb.BATCHLOG_MUTATION usages in StorageProxy

patch by Carl Yeksigian; reviewed by Aleksey Yeschenko for
CASSANDRA-9992


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

Branch: refs/heads/cassandra-3.0
Commit: 16498de42d1e173f39d7edeba5ab7d567e609cc6
Parents: 762db47
Author: Carl Yeksigian <[email protected]>
Authored: Wed Aug 5 11:42:01 2015 -0400
Committer: Aleksey Yeschenko <[email protected]>
Committed: Thu Aug 6 17:42:45 2015 +0300

----------------------------------------------------------------------
 .../apache/cassandra/service/StorageProxy.java  | 24 +++++++++++++++-----
 1 file changed, 18 insertions(+), 6 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/16498de4/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 b637b17..2c3c018 100644
--- a/src/java/org/apache/cassandra/service/StorageProxy.java
+++ b/src/java/org/apache/cassandra/service/StorageProxy.java
@@ -837,18 +837,18 @@ public class StorageProxy implements StorageProxyMBean
             {
                 insertLocal(Stage.BATCHLOG_MUTATION, message.payload, handler);
             }
-            else if (targetVersion == MessagingService.current_version)
-            {
-                MessagingService.instance().sendRR(message, target, handler, 
false);
-            }
-            else
+            else if (targetVersion < MessagingService.VERSION_30)
             {
                 
MessagingService.instance().sendRR(BatchlogManager.getBatchlogMutationFor(mutations,
 uuid, targetVersion)
-                                                                  
.createMessage(MessagingService.Verb.BATCHLOG_MUTATION),
+                                                                  
.createMessage(MessagingService.Verb.MUTATION),
                                                    target,
                                                    handler,
                                                    false);
             }
+            else
+            {
+                MessagingService.instance().sendRR(message, target, handler, 
false);
+            }
         }
 
         handler.get();
@@ -870,10 +870,22 @@ public class StorageProxy implements StorageProxyMBean
         MessageOut<Mutation> message = 
mutation.createMessage(MessagingService.Verb.BATCHLOG_MUTATION);
         for (InetAddress target : endpoints)
         {
+            int targetVersion = MessagingService.instance().getVersion(target);
             if (canDoLocalRequest(target))
+            {
                 insertLocal(Stage.BATCHLOG_MUTATION, message.payload, handler);
+            }
+            else if (targetVersion < MessagingService.VERSION_30)
+            {
+                
MessagingService.instance().sendRR(mutation.createMessage(MessagingService.Verb.MUTATION),
+                                                   target,
+                                                   handler,
+                                                   false);
+            }
             else
+            {
                 MessagingService.instance().sendRR(message, target, handler, 
false);
+            }
         }
     }
 

Reply via email to