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);