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 <jbel...@apache.org> Authored: Fri Oct 12 10:26:39 2012 -0500 Committer: Jonathan Ellis <jbel...@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));