Author: mreutegg
Date: Tue Nov  7 09:38:45 2017
New Revision: 1814471

URL: http://svn.apache.org/viewvc?rev=1814471&view=rev
Log:
OAK-6908: Change RDB default scheduling on RDB

Modified:
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Configuration.java
    
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Configuration.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Configuration.java?rev=1814471&r1=1814470&r2=1814471&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Configuration.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/Configuration.java
 Tue Nov  7 09:38:45 2017
@@ -160,12 +160,14 @@ import static org.apache.jackrabbit.oak.
     @AttributeDefinition(
             name = "Version GC scheduler expression",
             description = "A cron expression that defines when the Version GC 
is scheduled. " +
-                    "If this configuration entry is left empty, the default 
value depends on " +
+                    "If this configuration entry is left empty, the default 
behaviour depends on " +
                     "the 'documentStoreType'. For 'MONGO' the default is to 
schedule a " +
                     "run every five seconds (also known as Continuous Revision 
Garbage " +
-                    "collection). For 'RDB' the default is to schedule a run 
once a day " +
-                    "starting at 2 AM. The corresponding cron expression is '" 
+
-                    DocumentNodeStoreService.CLASSIC_RGC_EXPR + "'.")
+                    "Collection). For 'RDB' the default is no scheduled GC. It 
must be " +
+                    "enabled explicitly with a cron expression. E.g. the 
following " +
+                    "expression triggers a GC run every night at 2 AM: '" +
+                    DocumentNodeStoreService.CLASSIC_RGC_EXPR + "'."
+    )
     String versionGCExpression() default "";
 
     @AttributeDefinition(

Modified: 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
URL: 
http://svn.apache.org/viewvc/jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java?rev=1814471&r1=1814470&r2=1814471&view=diff
==============================================================================
--- 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
 (original)
+++ 
jackrabbit/oak/trunk/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/DocumentNodeStoreService.java
 Tue Nov  7 09:38:45 2017
@@ -560,12 +560,17 @@ public class DocumentNodeStoreService {
         if (DocumentStoreType.fromString(config.documentStoreType()) == 
DocumentStoreType.MONGO) {
             defaultExpr = CONTINUOUS_RGC_EXPR;
         } else {
-            defaultExpr = CLASSIC_RGC_EXPR;
+            defaultExpr = "";
+        }
+        String expr = PropertiesUtil.toString(prop(PROP_VER_GC_EXPRESSION), 
"");
+        if (expr.isEmpty()) {
+            expr = defaultExpr;
         }
-        String expr = PropertiesUtil.toString(prop(PROP_VER_GC_EXPRESSION), 
defaultExpr);
         // validate expression
         try {
-            new CronExpression(expr);
+            if (!expr.isEmpty()) {
+                new CronExpression(expr);
+            }
         } catch (ParseException e) {
             log.warn("Invalid cron expression, falling back to default '" + 
defaultExpr + "'", e);
             expr = defaultExpr;
@@ -874,6 +879,9 @@ public class DocumentNodeStoreService {
 
     private void registerVersionGCJob(final DocumentNodeStore nodeStore) {
         String expr = getVersionGCExpression();
+        if (expr.isEmpty()) {
+            return;
+        }
         Map<String, Object> props = jobPropertiesFor(RevisionGCJob.class);
         props.put("scheduler.expression", expr);
         long versionGcMaxAgeInSecs = toLong(prop(PROP_VER_GC_MAX_AGE), 
DEFAULT_VER_GC_MAX_AGE);


Reply via email to