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/25 22:58:41 UTC

[1/2] git commit: use microsecond timestamps in SystemTable patch by Aaron Morton; reviewed by jbellis for CASSANDRA-3692

Updated Branches:
  refs/heads/trunk 45e1d5188 -> cf0b69ff5


use microsecond timestamps in SystemTable
patch by Aaron Morton; reviewed by jbellis for CASSANDRA-3692


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

Branch: refs/heads/trunk
Commit: cf0b69ff5d09d91c91f7663011c48a5a5178243f
Parents: e0aec20
Author: Jonathan Ellis <jb...@apache.org>
Authored: Wed Jan 25 15:56:58 2012 -0600
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Wed Jan 25 15:58:27 2012 -0600

----------------------------------------------------------------------
 src/java/org/apache/cassandra/db/SystemTable.java |   27 +++++++++-------
 src/java/org/apache/cassandra/utils/NodeId.java   |    4 +-
 2 files changed, 17 insertions(+), 14 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/cf0b69ff/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 99c343b..58ff41e 100644
--- a/src/java/org/apache/cassandra/db/SystemTable.java
+++ b/src/java/org/apache/cassandra/db/SystemTable.java
@@ -88,19 +88,19 @@ public class SystemTable
 
         rm = new RowMutation(Table.SYSTEM_TABLE, ByteBufferUtil.bytes("build"));
         cf = ColumnFamily.create(Table.SYSTEM_TABLE, VERSION_CF);
-        cf.addColumn(new Column(ByteBufferUtil.bytes("version"), ByteBufferUtil.bytes(FBUtilities.getReleaseVersionString())));
+        cf.addColumn(new Column(ByteBufferUtil.bytes("version"), ByteBufferUtil.bytes(FBUtilities.getReleaseVersionString()), FBUtilities.timestampMicros()));
         rm.add(cf);
         rm.apply();
 
         rm = new RowMutation(Table.SYSTEM_TABLE, ByteBufferUtil.bytes("cql"));
         cf = ColumnFamily.create(Table.SYSTEM_TABLE, VERSION_CF);
-        cf.addColumn(new Column(ByteBufferUtil.bytes("version"), ByteBufferUtil.bytes(QueryProcessor.CQL_VERSION.toString())));
+        cf.addColumn(new Column(ByteBufferUtil.bytes("version"), ByteBufferUtil.bytes(QueryProcessor.CQL_VERSION.toString()), FBUtilities.timestampMicros()));
         rm.add(cf);
         rm.apply();
 
         rm = new RowMutation(Table.SYSTEM_TABLE, ByteBufferUtil.bytes("thrift"));
         cf = ColumnFamily.create(Table.SYSTEM_TABLE, VERSION_CF);
-        cf.addColumn(new Column(ByteBufferUtil.bytes("version"), ByteBufferUtil.bytes(Constants.VERSION)));
+        cf.addColumn(new Column(ByteBufferUtil.bytes("version"), ByteBufferUtil.bytes(Constants.VERSION), FBUtilities.timestampMicros()));
         rm.add(cf);
         rm.apply();
     }
@@ -134,7 +134,7 @@ public class SystemTable
         }
         logger.debug("Marking pre-1.0 hints purged");
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, COOKIE_KEY);
-        rm.add(new QueryPath(STATUS_CF, null, upgradeMarker), ByteBufferUtil.bytes("oh yes, they were purged"), System.currentTimeMillis());
+        rm.add(new QueryPath(STATUS_CF, null, upgradeMarker), ByteBufferUtil.bytes("oh yes, they were purged"), FBUtilities.timestampMicros());
         rm.apply();
     }
 
@@ -150,7 +150,7 @@ public class SystemTable
         }
         IPartitioner p = StorageService.getPartitioner();
         ColumnFamily cf = ColumnFamily.create(Table.SYSTEM_TABLE, STATUS_CF);
-        cf.addColumn(new Column(p.getTokenFactory().toByteArray(token), ByteBuffer.wrap(ep.getAddress()), System.currentTimeMillis()));
+        cf.addColumn(new Column(p.getTokenFactory().toByteArray(token), ByteBuffer.wrap(ep.getAddress()), FBUtilities.timestampMicros()));
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, RING_KEY);
         rm.add(cf);
         try
@@ -171,7 +171,7 @@ public class SystemTable
     {
         IPartitioner p = StorageService.getPartitioner();
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, RING_KEY);
-        rm.delete(new QueryPath(STATUS_CF, null, p.getTokenFactory().toByteArray(token)), System.currentTimeMillis());
+        rm.delete(new QueryPath(STATUS_CF, null, p.getTokenFactory().toByteArray(token)), FBUtilities.timestampMicros());
         try
         {
             rm.apply();
@@ -190,7 +190,7 @@ public class SystemTable
     {
         IPartitioner p = StorageService.getPartitioner();
         ColumnFamily cf = ColumnFamily.create(Table.SYSTEM_TABLE, STATUS_CF);
-        cf.addColumn(new Column(SystemTable.TOKEN, p.getTokenFactory().toByteArray(token), System.currentTimeMillis()));
+        cf.addColumn(new Column(SystemTable.TOKEN, p.getTokenFactory().toByteArray(token), FBUtilities.timestampMicros()));
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, LOCATION_KEY);
         rm.add(cf);
         try
@@ -370,8 +370,8 @@ public class SystemTable
     {
         ColumnFamily cf = ColumnFamily.create(Table.SYSTEM_TABLE, STATUS_CF);
         cf.addColumn(new Column(BOOTSTRAP, 
-                                ByteBuffer.wrap(new byte[] { (byte) (isBootstrapped ? 1 : 0) }), 
-                                System.currentTimeMillis()));
+                                ByteBuffer.wrap(new byte[] { (byte) (isBootstrapped ? 1 : 0) }),
+                                FBUtilities.timestampMicros()));
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, BOOTSTRAP_KEY);
         rm.add(cf);
         try
@@ -396,7 +396,7 @@ public class SystemTable
     public static void setIndexBuilt(String table, String indexName)
     {
         ColumnFamily cf = ColumnFamily.create(Table.SYSTEM_TABLE, INDEX_CF);
-        cf.addColumn(new Column(ByteBufferUtil.bytes(indexName), ByteBufferUtil.EMPTY_BYTE_BUFFER, System.currentTimeMillis()));
+        cf.addColumn(new Column(ByteBufferUtil.bytes(indexName), ByteBufferUtil.EMPTY_BYTE_BUFFER, FBUtilities.timestampMicros()));
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, ByteBufferUtil.bytes(table));
         rm.add(cf);
         try
@@ -414,7 +414,7 @@ public class SystemTable
     public static void setIndexRemoved(String table, String indexName)
     {
         RowMutation rm = new RowMutation(Table.SYSTEM_TABLE, ByteBufferUtil.bytes(table));
-        rm.delete(new QueryPath(INDEX_CF, null, ByteBufferUtil.bytes(indexName)), System.currentTimeMillis());
+        rm.delete(new QueryPath(INDEX_CF, null, ByteBufferUtil.bytes(indexName)), FBUtilities.timestampMicros());
         try
         {
             rm.apply();
@@ -463,6 +463,7 @@ public class SystemTable
      * replace) or null if no such node id exists (new node or removed system
      * table)
      * @param newNodeId the new current local node id to record
+     * @param now microsecond time stamp.
      */
     public static void writeCurrentLocalNodeId(NodeId oldNodeId, NodeId newNodeId, long now)
     {
@@ -473,7 +474,9 @@ public class SystemTable
         ColumnFamily cf2 = cf.cloneMe();
         if (oldNodeId != null)
         {
-            cf2.addColumn(new DeletedColumn(oldNodeId.bytes(), (int) (now / 1000), now));
+            // previously used (int)(now /1000) for the localDeletionTime
+            // tests use single digit long values for now, so use actual time.
+            cf2.addColumn(new DeletedColumn(oldNodeId.bytes(), (int)(System.currentTimeMillis() / 1000), now));
         }
         RowMutation rmCurrent = new RowMutation(Table.SYSTEM_TABLE, CURRENT_LOCAL_NODE_ID_KEY);
         RowMutation rmAll = new RowMutation(Table.SYSTEM_TABLE, ALL_LOCAL_NODE_ID_KEY);

http://git-wip-us.apache.org/repos/asf/cassandra/blob/cf0b69ff/src/java/org/apache/cassandra/utils/NodeId.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/utils/NodeId.java b/src/java/org/apache/cassandra/utils/NodeId.java
index 9e775b7..21b14b4 100644
--- a/src/java/org/apache/cassandra/utils/NodeId.java
+++ b/src/java/org/apache/cassandra/utils/NodeId.java
@@ -62,7 +62,7 @@ public class NodeId implements Comparable<NodeId>
      */
     public static void renewLocalId()
     {
-        renewLocalId(System.currentTimeMillis());
+        renewLocalId(FBUtilities.timestampMicros());
     }
 
     public static synchronized void renewLocalId(long now)
@@ -198,7 +198,7 @@ public class NodeId implements Comparable<NodeId>
                 // no recorded local node id, generating a new one and saving it
                 id = generate();
                 logger.info("No saved local node id, using newly generated: {}", id);
-                SystemTable.writeCurrentLocalNodeId(null, id, System.currentTimeMillis());
+                SystemTable.writeCurrentLocalNodeId(null, id, FBUtilities.timestampMicros());
                 current = new AtomicReference<NodeId>(id);
                 olds = new CopyOnWriteArrayList();
             }