This is an automated email from the ASF dual-hosted git repository.

brandonwilliams pushed a commit to branch trunk
in repository https://gitbox.apache.org/repos/asf/cassandra.git


The following commit(s) were added to refs/heads/trunk by this push:
     new c21cde1  Add option to disable compaction at startup
c21cde1 is described below

commit c21cde119d12d0c5bec67c554f298874b3a70b8e
Author: David Capwell <dcapw...@apple.com>
AuthorDate: Tue Jul 7 10:25:06 2020 -0700

    Add option to disable compaction at startup
    
    Patch by David Capwell, reviewed by brandonwilliams for CASSANDRA-15927
---
 CHANGES.txt                                                  | 1 +
 src/java/org/apache/cassandra/config/Config.java             | 2 ++
 src/java/org/apache/cassandra/config/DatabaseDescriptor.java | 5 +++++
 src/java/org/apache/cassandra/service/CassandraDaemon.java   | 9 ++++++++-
 4 files changed, 16 insertions(+), 1 deletion(-)

diff --git a/CHANGES.txt b/CHANGES.txt
index d382650..9bca849 100644
--- a/CHANGES.txt
+++ b/CHANGES.txt
@@ -1,4 +1,5 @@
 4.0-alpha5
+ * Add option to disable compaction at startup (CASSANDRA-15927)
  * FBUtilities.getJustLocalAddress falls back to lo ip on misconfigured nodes 
(CASSANDRA-15901)
  * Close channel and reduce buffer allocation during entire sstable streaming 
with SSL (CASSANDRA-15900)
  * Prune expired messages less frequently in internode messaging 
(CASSANDRA-15700)
diff --git a/src/java/org/apache/cassandra/config/Config.java 
b/src/java/org/apache/cassandra/config/Config.java
index 34ac049..63cfff4 100644
--- a/src/java/org/apache/cassandra/config/Config.java
+++ b/src/java/org/apache/cassandra/config/Config.java
@@ -521,6 +521,8 @@ public class Config
     public volatile boolean check_for_duplicate_rows_during_reads = true;
     public volatile boolean check_for_duplicate_rows_during_compaction = true;
 
+    public boolean autocompaction_on_startup_enabled = 
Boolean.parseBoolean(System.getProperty("cassandra.autocompaction_on_startup_enabled",
 "true"));
+
     /**
      * Client mode means that the process is a pure client, that uses C* code 
base but does
      * not read or write local C* database files.
diff --git a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java 
b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
index 9cc2a3b..5f94710 100644
--- a/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
+++ b/src/java/org/apache/cassandra/config/DatabaseDescriptor.java
@@ -3154,4 +3154,9 @@ public class DatabaseDescriptor
     {
         conf.range_tombstone_list_growth_factor = resizeFactor;
     }
+
+    public static boolean getAutocompactionOnStartupEnabled()
+    {
+        return conf.autocompaction_on_startup_enabled;
+    }
 }
diff --git a/src/java/org/apache/cassandra/service/CassandraDaemon.java 
b/src/java/org/apache/cassandra/service/CassandraDaemon.java
index c7591d5..10d9cea 100644
--- a/src/java/org/apache/cassandra/service/CassandraDaemon.java
+++ b/src/java/org/apache/cassandra/service/CassandraDaemon.java
@@ -404,7 +404,14 @@ public class CassandraDaemon
                     store.reload(); //reload CFs in case there was a change of 
disk boundaries
                     if (store.getCompactionStrategyManager().shouldBeEnabled())
                     {
-                        store.enableAutoCompaction();
+                        if 
(DatabaseDescriptor.getAutocompactionOnStartupEnabled())
+                        {
+                            store.enableAutoCompaction();
+                        }
+                        else
+                        {
+                            logger.info("Not enabling compaction for {}.{}; 
autocompaction_on_startup_enabled is set to false", store.keyspace.getName(), 
store.name);
+                        }
                     }
                 }
             }


---------------------------------------------------------------------
To unsubscribe, e-mail: commits-unsubscr...@cassandra.apache.org
For additional commands, e-mail: commits-h...@cassandra.apache.org

Reply via email to