This is an automated email from the ASF dual-hosted git repository.
jinsongzhou pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/amoro.git
The following commit(s) were added to refs/heads/master by this push:
new d4ea2fa18 [AMORO-3192] Add the
"clean-orphan-file.interval-time-minutes" parameter (#3193)
d4ea2fa18 is described below
commit d4ea2fa18bf3472d1b279c95fad2ac1dfe5329b3
Author: Darcy <[email protected]>
AuthorDate: Wed Sep 11 19:53:05 2024 +0800
[AMORO-3192] Add the "clean-orphan-file.interval-time-minutes" parameter
(#3193)
* Add the "clean-orphan-file.interval-time-minutes" parameter
* Rename the parameter to "clean-orphan-files.interval" and use the new
parameter type.
* rollback configurations doc and add example to config.yaml
---
.../main/java/org/apache/amoro/server/AmoroManagementConf.java | 6 ++++++
.../amoro/server/table/executor/AsyncTableExecutors.java | 4 +++-
.../server/table/executor/OrphanFilesCleaningExecutor.java | 10 ++++++----
.../src/main/java/org/apache/amoro/table/TableProperties.java | 1 +
dist/src/main/amoro-bin/conf/config.yaml | 1 +
5 files changed, 17 insertions(+), 5 deletions(-)
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/AmoroManagementConf.java
b/amoro-ams/src/main/java/org/apache/amoro/server/AmoroManagementConf.java
index 871ab5bc9..415995d81 100644
--- a/amoro-ams/src/main/java/org/apache/amoro/server/AmoroManagementConf.java
+++ b/amoro-ams/src/main/java/org/apache/amoro/server/AmoroManagementConf.java
@@ -102,6 +102,12 @@ public class AmoroManagementConf {
.defaultValue(10)
.withDescription("The number of threads used for orphan files
cleaning.");
+ public static final ConfigOption<Duration> CLEAN_ORPHAN_FILES_INTERVAL =
+ ConfigOptions.key("clean-orphan-files.interval")
+ .durationType()
+ .defaultValue(Duration.ofDays(1))
+ .withDescription("Interval for cleaning orphan files.");
+
public static final ConfigOption<Boolean>
CLEAN_DANGLING_DELETE_FILES_ENABLED =
ConfigOptions.key("clean-dangling-delete-files.enabled")
.booleanType()
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/AsyncTableExecutors.java
b/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/AsyncTableExecutors.java
index 09f7a4d3c..a45385026 100644
---
a/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/AsyncTableExecutors.java
+++
b/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/AsyncTableExecutors.java
@@ -49,7 +49,9 @@ public class AsyncTableExecutors {
if (conf.getBoolean(AmoroManagementConf.CLEAN_ORPHAN_FILES_ENABLED)) {
this.orphanFilesCleaningExecutor =
new OrphanFilesCleaningExecutor(
- tableManager,
conf.getInteger(AmoroManagementConf.CLEAN_ORPHAN_FILES_THREAD_COUNT));
+ tableManager,
+
conf.getInteger(AmoroManagementConf.CLEAN_ORPHAN_FILES_THREAD_COUNT),
+ conf.get(AmoroManagementConf.CLEAN_ORPHAN_FILES_INTERVAL));
}
if
(conf.getBoolean(AmoroManagementConf.CLEAN_DANGLING_DELETE_FILES_ENABLED)) {
this.danglingDeleteFilesCleaningExecutor =
diff --git
a/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/OrphanFilesCleaningExecutor.java
b/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/OrphanFilesCleaningExecutor.java
index 9d40090ad..6d6cf01dc 100644
---
a/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/OrphanFilesCleaningExecutor.java
+++
b/amoro-ams/src/main/java/org/apache/amoro/server/table/executor/OrphanFilesCleaningExecutor.java
@@ -26,18 +26,20 @@ import org.apache.amoro.server.table.TableRuntime;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
+import java.time.Duration;
+
public class OrphanFilesCleaningExecutor extends BaseTableExecutor {
private static final Logger LOG =
LoggerFactory.getLogger(OrphanFilesCleaningExecutor.class);
+ private final Duration interval;
- private static final long INTERVAL = 24 * 60 * 60 * 1000L;
-
- public OrphanFilesCleaningExecutor(TableManager tableRuntimes, int poolSize)
{
+ public OrphanFilesCleaningExecutor(TableManager tableRuntimes, int poolSize,
Duration interval) {
super(tableRuntimes, poolSize);
+ this.interval = interval;
}
@Override
protected long getNextExecutingTime(TableRuntime tableRuntime) {
- return INTERVAL;
+ return interval.toMillis();
}
@Override
diff --git
a/amoro-format-iceberg/src/main/java/org/apache/amoro/table/TableProperties.java
b/amoro-format-iceberg/src/main/java/org/apache/amoro/table/TableProperties.java
index debe3f0ca..9f2aeca5d 100644
---
a/amoro-format-iceberg/src/main/java/org/apache/amoro/table/TableProperties.java
+++
b/amoro-format-iceberg/src/main/java/org/apache/amoro/table/TableProperties.java
@@ -173,6 +173,7 @@ public class TableProperties {
public static final String MIN_ORPHAN_FILE_EXISTING_TIME =
"clean-orphan-file.min-existing-time-minutes";
public static final long MIN_ORPHAN_FILE_EXISTING_TIME_DEFAULT = 2880; // 2
Days
+
public static final String ENABLE_DANGLING_DELETE_FILES_CLEAN =
"clean-dangling-delete-files.enabled";
public static final boolean ENABLE_DANGLING_DELETE_FILES_CLEAN_DEFAULT =
true;
diff --git a/dist/src/main/amoro-bin/conf/config.yaml
b/dist/src/main/amoro-bin/conf/config.yaml
index d16027c34..ae1de24e4 100644
--- a/dist/src/main/amoro-bin/conf/config.yaml
+++ b/dist/src/main/amoro-bin/conf/config.yaml
@@ -66,6 +66,7 @@ ams:
clean-orphan-files:
enabled: true
thread-count: 10
+ interval: 1d
clean-dangling-delete-files:
enabled: true