Updated Branches:
  refs/heads/trunk 6decaf4e8 -> d28034916

Add a native_protocol_version column to the system.local table.
patch by jasobrown; reviewed by thobbs for CASSANDRA-5819


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

Branch: refs/heads/trunk
Commit: d28034916f2cc52a52912fda6c32417b00c3c053
Parents: 6decaf4
Author: Jason Brown <jasedbr...@gmail.com>
Authored: Mon Jul 29 07:13:38 2013 -0700
Committer: Jason Brown <jasedbr...@gmail.com>
Committed: Mon Jul 29 09:30:53 2013 -0700

----------------------------------------------------------------------
 CHANGES.txt                                               | 1 +
 src/java/org/apache/cassandra/config/CFMetaData.java      | 1 +
 src/java/org/apache/cassandra/db/SystemKeyspace.java      | 5 +++--
 src/java/org/apache/cassandra/transport/Frame.java        | 3 +--
 src/java/org/apache/cassandra/transport/Message.java      | 2 +-
 src/java/org/apache/cassandra/transport/Server.java       | 3 +++
 src/java/org/apache/cassandra/transport/SimpleClient.java | 4 ++--
 7 files changed, 12 insertions(+), 7 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 6b5f91c..deb0333 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -5,6 +5,7 @@
  * Fix assertion error during repair (CASSANDRA-5801)
  * Fix range tombstone bug (CASSANDRA-5805)
  * DC-local CAS (CASSANDRA-5797)
+ * Add a native_protocol_version column to the system.local table 
(CASSANRDA-5819)
 Merged from 1.2:
  * cqlsh: add collections support to COPY (CASSANDRA-5698)
  * retry important messages for any IOException (CASSANDRA-5804)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/src/java/org/apache/cassandra/config/CFMetaData.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/CFMetaData.java 
b/src/java/org/apache/cassandra/config/CFMetaData.java
index 39026bf..8fbb70b 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -203,6 +203,7 @@ public final class CFMetaData
                                                      + "release_version text,"
                                                      + "thrift_version text,"
                                                      + "cql_version text,"
+                                                     + 
"native_protocol_version text,"
                                                      + "data_center text,"
                                                      + "rack text,"
                                                      + "partitioner text,"

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/src/java/org/apache/cassandra/db/SystemKeyspace.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SystemKeyspace.java 
b/src/java/org/apache/cassandra/db/SystemKeyspace.java
index 5a60914..dba3421 100644
--- a/src/java/org/apache/cassandra/db/SystemKeyspace.java
+++ b/src/java/org/apache/cassandra/db/SystemKeyspace.java
@@ -22,13 +22,13 @@ import java.io.IOException;
 import java.net.InetAddress;
 import java.nio.ByteBuffer;
 import java.util.*;
-import java.util.concurrent.ExecutionException;
 
 import com.google.common.base.Function;
 import com.google.common.collect.HashMultimap;
 import com.google.common.collect.Iterables;
 import com.google.common.collect.SetMultimap;
 import com.google.common.collect.Sets;
+import org.apache.cassandra.transport.Server;
 import org.apache.commons.lang.StringUtils;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -116,13 +116,14 @@ public class SystemKeyspace
 
     private static void setupVersion()
     {
-        String req = "INSERT INTO system.%s (key, release_version, 
cql_version, thrift_version, data_center, rack, partitioner) VALUES ('%s', 
'%s', '%s', '%s', '%s', '%s', '%s')";
+        String req = "INSERT INTO system.%s (key, release_version, 
cql_version, thrift_version, native_protocol_version, data_center, rack, 
partitioner) VALUES ('%s', '%s', '%s', '%s', '%s', '%s', '%s', '%s')";
         IEndpointSnitch snitch = DatabaseDescriptor.getEndpointSnitch();
         processInternal(String.format(req, LOCAL_CF,
                                          LOCAL_KEY,
                                          FBUtilities.getReleaseVersionString(),
                                          QueryProcessor.CQL_VERSION.toString(),
                                          cassandraConstants.VERSION,
+                                         Server.CURRENT_VERSION,
                                          
snitch.getDatacenter(FBUtilities.getBroadcastAddress()),
                                          
snitch.getRack(FBUtilities.getBroadcastAddress()),
                                          
DatabaseDescriptor.getPartitioner().getClass().getName()));

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/src/java/org/apache/cassandra/transport/Frame.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Frame.java 
b/src/java/org/apache/cassandra/transport/Frame.java
index b19ea33..0d5185c 100644
--- a/src/java/org/apache/cassandra/transport/Frame.java
+++ b/src/java/org/apache/cassandra/transport/Frame.java
@@ -82,7 +82,6 @@ public class Frame
     public static class Header
     {
         public static final int LENGTH = 8;
-        public static final int CURRENT_VERSION = 2;
 
         public final int version;
         public final EnumSet<Flag> flags;
@@ -163,7 +162,7 @@ public class Frame
                 Message.Direction direction = 
Message.Direction.extractFromVersion(firstByte);
                 int version = firstByte & 0x7F;
 
-                if (version > Header.CURRENT_VERSION)
+                if (version > Server.CURRENT_VERSION)
                     throw new ProtocolException("Invalid or unsupported 
protocol version: " + version);
 
                 // Validate the opcode

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/src/java/org/apache/cassandra/transport/Message.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Message.java 
b/src/java/org/apache/cassandra/transport/Message.java
index 557bddf..dbf1595 100644
--- a/src/java/org/apache/cassandra/transport/Message.java
+++ b/src/java/org/apache/cassandra/transport/Message.java
@@ -249,7 +249,7 @@ public abstract class Message
 
             Connection connection = (Connection)channel.getAttachment();
             // The only case the connection can be null is when we send the 
initial STARTUP message (client side thus)
-            int version = connection == null ? Frame.Header.CURRENT_VERSION : 
connection.getVersion();
+            int version = connection == null ? Server.CURRENT_VERSION : 
connection.getVersion();
 
             ChannelBuffer body = message.encode(version);
             EnumSet<Frame.Header.Flag> flags = 
EnumSet.noneOf(Frame.Header.Flag.class);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/src/java/org/apache/cassandra/transport/Server.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/Server.java 
b/src/java/org/apache/cassandra/transport/Server.java
index 0a0a77c..5ac4a70 100644
--- a/src/java/org/apache/cassandra/transport/Server.java
+++ b/src/java/org/apache/cassandra/transport/Server.java
@@ -64,6 +64,9 @@ public class Server implements CassandraDaemon.Server
 
     private static final Logger logger = LoggerFactory.getLogger(Server.class);
 
+    /** current version of the native protocol we support */
+    public static final int CURRENT_VERSION = 2;
+
     private final ConnectionTracker connectionTracker = new 
ConnectionTracker();
 
     private final Connection.Factory connectionFactory = new 
Connection.Factory()

http://git-wip-us.apache.org/repos/asf/cassandra/blob/d2803491/src/java/org/apache/cassandra/transport/SimpleClient.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/transport/SimpleClient.java 
b/src/java/org/apache/cassandra/transport/SimpleClient.java
index cfe1bab..94be162 100644
--- a/src/java/org/apache/cassandra/transport/SimpleClient.java
+++ b/src/java/org/apache/cassandra/transport/SimpleClient.java
@@ -74,7 +74,7 @@ public class SimpleClient
     protected final ResponseHandler responseHandler = new ResponseHandler();
     protected final Connection.Tracker tracker = new ConnectionTracker();
     // We don't track connection really, so we don't need one Connection per 
channel
-    protected final Connection connection = new Connection(null, 
Frame.Header.CURRENT_VERSION, tracker);
+    protected final Connection connection = new Connection(null, 
Server.CURRENT_VERSION, tracker);
     protected ClientBootstrap bootstrap;
     protected Channel channel;
     protected ChannelFuture lastWriteFuture;
@@ -83,7 +83,7 @@ public class SimpleClient
     {
         public Connection newConnection(Channel channel, int version)
         {
-            assert version == Frame.Header.CURRENT_VERSION;
+            assert version == Server.CURRENT_VERSION;
             return connection;
         }
     };

Reply via email to