You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by yu...@apache.org on 2012/11/15 18:01:18 UTC

[8/8] git commit: Add schema_version to local table (since local node is not in peers)

Add schema_version to local table (since local node is not in peers)


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

Branch: refs/heads/cassandra-1.2
Commit: c4cca2d8bba20a7651b956e1893727391bf5f10a
Parents: 90de8d5
Author: Sylvain Lebresne <sy...@datastax.com>
Authored: Wed Nov 14 12:01:48 2012 +0100
Committer: Sylvain Lebresne <sy...@datastax.com>
Committed: Wed Nov 14 12:01:48 2012 +0100

----------------------------------------------------------------------
 .../org/apache/cassandra/config/CFMetaData.java    |    1 +
 src/java/org/apache/cassandra/config/Schema.java   |    1 +
 src/java/org/apache/cassandra/db/SystemTable.java  |    7 +++++++
 3 files changed, 9 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/c4cca2d8/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 b50abc5..cb760f1 100644
--- a/src/java/org/apache/cassandra/config/CFMetaData.java
+++ b/src/java/org/apache/cassandra/config/CFMetaData.java
@@ -183,6 +183,7 @@ public final class CFMetaData
                                                          + "data_center text,"
                                                          + "rack text,"
                                                          + "partitioner text,"
+                                                         + "schema_version uuid,"
                                                          + "truncated_at map<uuid, blob>"
                                                          + ") WITH COMMENT='information about the local node'");
 

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c4cca2d8/src/java/org/apache/cassandra/config/Schema.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/config/Schema.java b/src/java/org/apache/cassandra/config/Schema.java
index c3e90be..2f24d39 100644
--- a/src/java/org/apache/cassandra/config/Schema.java
+++ b/src/java/org/apache/cassandra/config/Schema.java
@@ -440,6 +440,7 @@ public class Schema
             }
 
             version = UUID.nameUUIDFromBytes(versionDigest.digest());
+            SystemTable.updateSchemaVersion(version);
         }
         catch (Exception e)
         {

http://git-wip-us.apache.org/repos/asf/cassandra/blob/c4cca2d8/src/java/org/apache/cassandra/db/SystemTable.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/SystemTable.java b/src/java/org/apache/cassandra/db/SystemTable.java
index 5ec4bd4..7737887 100644
--- a/src/java/org/apache/cassandra/db/SystemTable.java
+++ b/src/java/org/apache/cassandra/db/SystemTable.java
@@ -258,6 +258,7 @@ public class SystemTable
         processInternal(String.format(req, PEERS_CF, ep.getHostAddress(), tokensAsSet(tokens)));
         forceBlockingFlush(PEERS_CF);
     }
+
     public static synchronized void updatePeerInfo(InetAddress ep, String columnName, String value)
     {
         if (ep.equals(FBUtilities.getBroadcastAddress()))
@@ -267,6 +268,12 @@ public class SystemTable
         processInternal(String.format(req, PEERS_CF, columnName, ep.getHostAddress(), value));
     }
 
+    public static synchronized void updateSchemaVersion(UUID version)
+    {
+        String req = "INSERT INTO system.%s (key, schema_version) VALUES ('%s', %s)";
+        processInternal(String.format(req, LOCAL_CF, LOCAL_KEY, version.toString()));
+    }
+
     private static String tokensAsSet(Collection<Token> tokens)
     {
         Token.TokenFactory factory = StorageService.getPartitioner().getTokenFactory();