Repository: cassandra Updated Branches: refs/heads/cassandra-3.0 904137c38 -> 864e009b0 refs/heads/cassandra-3.9 584eae391 -> 5e111e64d refs/heads/trunk 29bd15ee9 -> e7dcbd64a
Faster startup by only scanning each directory for temporary files once patch by Jeff Jirsa; reviewed by Joel Knighton for CASSANDRA-12114 Project: http://git-wip-us.apache.org/repos/asf/cassandra/repo Commit: http://git-wip-us.apache.org/repos/asf/cassandra/commit/864e009b Tree: http://git-wip-us.apache.org/repos/asf/cassandra/tree/864e009b Diff: http://git-wip-us.apache.org/repos/asf/cassandra/diff/864e009b Branch: refs/heads/cassandra-3.0 Commit: 864e009b0853741fc33de5ab4e6384cacef48ca8 Parents: 904137c Author: Jeff Jirsa <[email protected]> Authored: Tue Jul 5 23:19:12 2016 -0700 Committer: Aleksey Yeschenko <[email protected]> Committed: Thu Jul 21 15:01:28 2016 +0100 ---------------------------------------------------------------------- CHANGES.txt | 1 + src/java/org/apache/cassandra/db/ColumnFamilyStore.java | 10 ++++++++-- 2 files changed, 9 insertions(+), 2 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/cassandra/blob/864e009b/CHANGES.txt ---------------------------------------------------------------------- diff --git a/CHANGES.txt b/CHANGES.txt index 9acd89e..eb73da2 100644 --- a/CHANGES.txt +++ b/CHANGES.txt @@ -1,4 +1,5 @@ 3.0.9 + * Faster startup by only scanning each directory for temporary files once (CASSANDRA-12114) * Respond with v1/v2 protocol header when responding to driver that attempts to connect with too low of a protocol version (CASSANDRA-11464) * NullPointerExpception when reading/compacting table (CASSANDRA-11988) http://git-wip-us.apache.org/repos/asf/cassandra/blob/864e009b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java ---------------------------------------------------------------------- diff --git a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java index b95e88d..f34a2d5 100644 --- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java +++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java @@ -581,6 +581,7 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean public static void scrubDataDirectories(CFMetaData metadata) { Directories directories = new Directories(metadata, initialDirectories); + Set<File> cleanedDirectories = new HashSet<>(); // clear ephemeral snapshots that were not properly cleared last session (CASSANDRA-7357) clearEphemeralSnapshots(directories); @@ -594,10 +595,15 @@ public class ColumnFamilyStore implements ColumnFamilyStoreMBean for (Map.Entry<Descriptor,Set<Component>> sstableFiles : directories.sstableLister(Directories.OnTxnErr.IGNORE).list().entrySet()) { Descriptor desc = sstableFiles.getKey(); + File directory = desc.directory; Set<Component> components = sstableFiles.getValue(); - for (File tmpFile : desc.getTemporaryFiles()) - tmpFile.delete(); + if (!cleanedDirectories.contains(directory)) + { + cleanedDirectories.add(directory); + for (File tmpFile : desc.getTemporaryFiles()) + tmpFile.delete(); + } File dataFile = new File(desc.filenameFor(Component.DATA)); if (components.contains(Component.DATA) && dataFile.length() > 0)
