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));