You are viewing a plain text version of this content. The canonical link for it is here.
Posted to oak-commits@jackrabbit.apache.org by da...@apache.org on 2024/08/28 17:38:21 UTC
(jackrabbit-oak) branch OAK-11068 created (now dff7200121)
This is an automated email from the ASF dual-hosted git repository.
daim pushed a change to branch OAK-11068
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
at dff7200121 OAK-11068 : added fullGcMode to oak-run
This branch includes the following new commits:
new dff7200121 OAK-11068 : added fullGcMode to oak-run
The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails. The revisions
listed as "add" were already present in the repository and have only
been added to this reference.
(jackrabbit-oak) 01/01: OAK-11068 : added fullGcMode to oak-run
Posted by da...@apache.org.
This is an automated email from the ASF dual-hosted git repository.
daim pushed a commit to branch OAK-11068
in repository https://gitbox.apache.org/repos/asf/jackrabbit-oak.git
commit dff7200121f3b4777a4030c27209db8635dbc794
Author: Rishabh Kumar <di...@adobe.com>
AuthorDate: Wed Aug 28 23:08:02 2024 +0530
OAK-11068 : added fullGcMode to oak-run
---
.../org/apache/jackrabbit/oak/run/RevisionsCommand.java | 11 ++++++++++-
.../oak/plugins/document/RevisionsCommandTest.java | 13 +++++++++++++
.../oak/plugins/document/VersionGarbageCollector.java | 2 +-
.../oak/plugins/document/VersionGarbageCollectorIT.java | 2 +-
4 files changed, 25 insertions(+), 3 deletions(-)
diff --git a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
index 27bfb5da5c..b10ad2f38b 100644
--- a/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
+++ b/oak-run/src/main/java/org/apache/jackrabbit/oak/run/RevisionsCommand.java
@@ -103,7 +103,7 @@ public class RevisionsCommand implements Command {
private static final List<String> LOGGER_NAMES = of(
"org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector",
"org.apache.jackrabbit.oak.plugins.document.NodeDocumentSweeper",
- "org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.auditDGC",
+ "org.apache.jackrabbit.oak.plugins.document.VersionGarbageCollector.auditFGC",
"org.apache.jackrabbit.oak.plugins.document.mongo.MongoVersionGCSupport",
"org.apache.jackrabbit.oak.plugins.document.VersionGCRecommendations"
);
@@ -132,6 +132,7 @@ public class RevisionsCommand implements Command {
final OptionSpec<?> compact;
final OptionSpec<Boolean> dryRun;
final OptionSpec<Boolean> embeddedVerification;
+ final OptionSpec<Integer> fullGcMode;
RevisionsOptions(String usage) {
super(usage);
@@ -154,6 +155,8 @@ public class RevisionsCommand implements Command {
"during dryRun mode i.e. will verify the effect of fullGC operation on each document after " +
"applying the changes in memory and will raise flag if it can cause issues")
.withRequiredArg().ofType(Boolean.class).defaultsTo(TRUE);
+ fullGcMode = parser.accepts("fullGcMode", "Mode of fullGC")
+ .withRequiredArg().ofType(Integer.class).defaultsTo(0);
continuous = parser
.accepts("continuous", "run continuously (collect only)");
fullGCOnly = parser
@@ -208,6 +211,10 @@ public class RevisionsCommand implements Command {
return embeddedVerification.value(options);
}
+ int fullGcMode() {
+ return fullGcMode.value(options);
+ }
+
long getOlderThan() {
return olderThan.value(options);
}
@@ -315,6 +322,7 @@ public class RevisionsCommand implements Command {
builder.setFullGCEnabled(fullGCEnabled);
builder.setFullGCIncludePaths(options.includePaths());
builder.setFullGCExcludePaths(options.excludePaths());
+ builder.setFullGCMode(options.fullGcMode());
// create a VersionGCSupport while builder is read-write
VersionGCSupport gcSupport = builder.createVersionGCSupport();
@@ -342,6 +350,7 @@ public class RevisionsCommand implements Command {
System.out.println("Compaction is enabled : " + options.doCompaction());
System.out.println("IncludePaths are : " + Arrays.toString(options.includePaths()));
System.out.println("ExcludePaths are : " + Arrays.toString(options.excludePaths()));
+ System.out.println("FullGcMode is : " + options.fullGcMode());
VersionGarbageCollector gc = createVersionGC(builder.build(), gcSupport, isFullGCEnabled(builder), options.isDryRun(),
isEmbeddedVerificationEnabled(builder), builder.getFullGCMode());
diff --git a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
index 749c5f9065..d91bb80acd 100644
--- a/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
+++ b/oak-run/src/test/java/org/apache/jackrabbit/oak/plugins/document/RevisionsCommandTest.java
@@ -195,6 +195,19 @@ public class RevisionsCommandTest {
assertTrue(output.contains("starting gc collect"));
assertTrue(output.contains("IncludePaths are : [/]"));
assertTrue(output.contains("ExcludePaths are : []"));
+ assertTrue(output.contains("FullGcMode is : 0"));
+ }
+
+ @Test
+ public void fullGCWithMode() {
+ ns.dispose();
+
+ String output = captureSystemOut(new RevisionsCmd("fullGC", "--entireRepo", "--fullGcMode", "3"));
+ assertTrue(output.contains("DryRun is enabled : true"));
+ assertTrue(output.contains("ResetFullGC is enabled : false"));
+ assertTrue(output.contains("Compaction is enabled : false"));
+ assertTrue(output.contains("starting gc collect"));
+ assertTrue(output.contains("FullGcMode is : 3"));
}
@Test
diff --git a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
index 5ba453a95d..2f00e23803 100644
--- a/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
+++ b/oak-store-document/src/main/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollector.java
@@ -121,7 +121,7 @@ public class VersionGarbageCollector {
private static final String STATUS_IDLE = "IDLE";
private static final String STATUS_INITIALIZING = "INITIALIZING";
private static final Logger log = getLogger(VersionGarbageCollector.class);
- private static final Logger AUDIT_LOG = getLogger(VersionGarbageCollector.class.getName() + ".auditDGC");
+ private static final Logger AUDIT_LOG = getLogger(VersionGarbageCollector.class.getName() + ".auditFGC");
/**
* Split document types which can be safely garbage collected
diff --git a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
index 2805d52945..fe26f438b0 100644
--- a/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
+++ b/oak-store-document/src/test/java/org/apache/jackrabbit/oak/plugins/document/VersionGarbageCollectorIT.java
@@ -1914,7 +1914,7 @@ public class VersionGarbageCollectorIT {
createSecondaryStore(LeaseCheckMode.LENIENT);
// while "2" was written to node1/a via an unmerged branch commit,
- // it should not have been made visible through DGC/sweep combo
+ // it should not have been made visible through FGC/sweep combo
invalidateCaches(store2);
assertEquals("1", store2.getRoot().getChildNode("node1").getProperty("a").getValue(Type.STRING));
assertEquals("4", store2.getRoot().getChildNode("node1").getProperty("b").getValue(Type.STRING));