You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cassandra.apache.org by al...@apache.org on 2016/07/21 14:03:57 UTC

[1/6] cassandra git commit: Faster startup by only scanning each directory for temporary files once

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 <je...@crowdstrike.com>
Authored: Tue Jul 5 23:19:12 2016 -0700
Committer: Aleksey Yeschenko <al...@apache.org>
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)


[5/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.9

Posted by al...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.9


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

Branch: refs/heads/cassandra-3.9
Commit: 5e111e64d065415c128d49086b0a91bfda6f2fca
Parents: 584eae3 864e009
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Jul 21 15:03:45 2016 +0100
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Jul 21 15:03:45 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/5e111e64/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index dc7a76e,eb73da2..2b86935
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,7 -1,5 +1,8 @@@
 -3.0.9
 +3.9
 + * cqlsh: Fix handling of $$-escaped strings (CASSANDRA-12189)
 + * Fix SSL JMX requiring truststore containing server cert (CASSANDRA-12109)
 +Merged from 3.0:
+  * 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/5e111e64/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0a3ad52,f34a2d5..9088105
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -604,9 -578,10 +604,10 @@@ public class ColumnFamilyStore implemen
       * Removes unnecessary files from the cf directory at startup: these include temp files, orphans, zero-length files
       * and compacted sstables. Files that cannot be recognized will be ignored.
       */
 -    public static void scrubDataDirectories(CFMetaData metadata)
 +    public static void scrubDataDirectories(CFMetaData metadata) throws StartupException
      {
          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);


[6/6] cassandra git commit: Merge branch 'cassandra-3.9' into trunk

Posted by al...@apache.org.
Merge branch 'cassandra-3.9' into trunk


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

Branch: refs/heads/trunk
Commit: e7dcbd64a88fdb8852a24847e83df0342d396bea
Parents: 29bd15e 5e111e6
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Jul 21 15:03:55 2016 +0100
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Jul 21 15:03:55 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/e7dcbd64/CHANGES.txt
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/cassandra/blob/e7dcbd64/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------


[3/6] cassandra git commit: Faster startup by only scanning each directory for temporary files once

Posted by al...@apache.org.
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/trunk
Commit: 864e009b0853741fc33de5ab4e6384cacef48ca8
Parents: 904137c
Author: Jeff Jirsa <je...@crowdstrike.com>
Authored: Tue Jul 5 23:19:12 2016 -0700
Committer: Aleksey Yeschenko <al...@apache.org>
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)


[2/6] cassandra git commit: Faster startup by only scanning each directory for temporary files once

Posted by al...@apache.org.
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.9
Commit: 864e009b0853741fc33de5ab4e6384cacef48ca8
Parents: 904137c
Author: Jeff Jirsa <je...@crowdstrike.com>
Authored: Tue Jul 5 23:19:12 2016 -0700
Committer: Aleksey Yeschenko <al...@apache.org>
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)


[4/6] cassandra git commit: Merge branch 'cassandra-3.0' into cassandra-3.9

Posted by al...@apache.org.
Merge branch 'cassandra-3.0' into cassandra-3.9


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

Branch: refs/heads/trunk
Commit: 5e111e64d065415c128d49086b0a91bfda6f2fca
Parents: 584eae3 864e009
Author: Aleksey Yeschenko <al...@apache.org>
Authored: Thu Jul 21 15:03:45 2016 +0100
Committer: Aleksey Yeschenko <al...@apache.org>
Committed: Thu Jul 21 15:03:45 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/5e111e64/CHANGES.txt
----------------------------------------------------------------------
diff --cc CHANGES.txt
index dc7a76e,eb73da2..2b86935
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@@ -1,7 -1,5 +1,8 @@@
 -3.0.9
 +3.9
 + * cqlsh: Fix handling of $$-escaped strings (CASSANDRA-12189)
 + * Fix SSL JMX requiring truststore containing server cert (CASSANDRA-12109)
 +Merged from 3.0:
+  * 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/5e111e64/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
----------------------------------------------------------------------
diff --cc src/java/org/apache/cassandra/db/ColumnFamilyStore.java
index 0a3ad52,f34a2d5..9088105
--- a/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
+++ b/src/java/org/apache/cassandra/db/ColumnFamilyStore.java
@@@ -604,9 -578,10 +604,10 @@@ public class ColumnFamilyStore implemen
       * Removes unnecessary files from the cf directory at startup: these include temp files, orphans, zero-length files
       * and compacted sstables. Files that cannot be recognized will be ignored.
       */
 -    public static void scrubDataDirectories(CFMetaData metadata)
 +    public static void scrubDataDirectories(CFMetaData metadata) throws StartupException
      {
          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);