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/10/12 17:27:00 UTC

git commit: Sort commitlog segments for replay by id instead of mtime patch by Fabien Rousseau; reviewed by jbellis for CASSANDRA-4793

Updated Branches:
  refs/heads/trunk e19fa37d4 -> f81864eba


Sort commitlog segments for replay by id instead of mtime
patch by Fabien Rousseau; reviewed by jbellis for CASSANDRA-4793


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

Branch: refs/heads/trunk
Commit: f81864ebae0f7e098a21ab957921a7a3f4ad1b3f
Parents: e19fa37
Author: Jonathan Ellis <jb...@apache.org>
Authored: Fri Oct 12 10:26:39 2012 -0500
Committer: Jonathan Ellis <jb...@apache.org>
Committed: Fri Oct 12 10:26:39 2012 -0500

----------------------------------------------------------------------
 CHANGES.txt                                        |    1 +
 .../apache/cassandra/db/commitlog/CommitLog.java   |    2 +-
 .../cassandra/db/commitlog/CommitLogSegment.java   |   12 ++++++++++++
 .../org/apache/cassandra/io/util/FileUtils.java    |    8 --------
 4 files changed, 14 insertions(+), 9 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/cassandra/blob/f81864eb/CHANGES.txt
----------------------------------------------------------------------
diff --git a/CHANGES.txt b/CHANGES.txt
index 94f65ad..0edd211 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 1.2-beta2
+ * Sort commitlog segments for replay by id instead of mtime (CASSANDRA-4793)
  * Make hint delivery asynchronous (CASSANDRA-4761)
  * Pluggable Thrift transport factories for CLI and cqlsh (CASSANDRA-4609, 4610)
  * cassandra-cli: allow Double value type to be inserted to a column (CASSANDRA-4661)

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f81864eb/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
index 22abcb7..74e57a6 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLog.java
@@ -122,7 +122,7 @@ public class CommitLog implements CommitLogMBean
         }
         else
         {
-            Arrays.sort(files, new FileUtils.FileComparator());
+            Arrays.sort(files, new CommitLogSegment.CommitLogSegmentFileComparator());
             logger.info("Replaying " + StringUtils.join(files, ", "));
             replayed = recover(files);
             logger.info("Log replay complete, " + replayed + " replayed mutations");

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f81864eb/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
index ecff23b..d292aef 100644
--- a/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
+++ b/src/java/org/apache/cassandra/db/commitlog/CommitLogSegment.java
@@ -23,6 +23,7 @@ import java.io.RandomAccessFile;
 import java.nio.MappedByteBuffer;
 import java.nio.channels.FileChannel;
 import java.util.Collection;
+import java.util.Comparator;
 import java.util.HashMap;
 import java.util.UUID;
 import java.util.concurrent.atomic.AtomicInteger;
@@ -374,4 +375,15 @@ public class CommitLogSegment
     {
         return buffer.position();
     }
+
+    
+    public static class CommitLogSegmentFileComparator implements Comparator<File>
+    {
+        public int compare(File f, File f2)
+        {
+            CommitLogDescriptor desc = CommitLogDescriptor.fromFileName(f.getName());
+            CommitLogDescriptor desc2 = CommitLogDescriptor.fromFileName(f2.getName());
+            return (int) (desc.id - desc2.id);        
+        }
+    }
 }

http://git-wip-us.apache.org/repos/asf/cassandra/blob/f81864eb/src/java/org/apache/cassandra/io/util/FileUtils.java
----------------------------------------------------------------------
diff --git a/src/java/org/apache/cassandra/io/util/FileUtils.java b/src/java/org/apache/cassandra/io/util/FileUtils.java
index 42b240b..bc4d67e 100644
--- a/src/java/org/apache/cassandra/io/util/FileUtils.java
+++ b/src/java/org/apache/cassandra/io/util/FileUtils.java
@@ -245,14 +245,6 @@ public class FileUtils
         }
     }
 
-    public static class FileComparator implements Comparator<File>
-    {
-        public int compare(File f, File f2)
-        {
-            return (int)(f.lastModified() - f2.lastModified());
-        }
-    }
-
     public static void createDirectory(String directory)
     {
         createDirectory(new File(directory));