This is an automated email from the ASF dual-hosted git repository.
yihua pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/hudi.git
The following commit(s) were added to refs/heads/master by this push:
new 35e759e1c63 [MINOR] Update cleaner docs (#9716)
35e759e1c63 is described below
commit 35e759e1c63d09631f768d96cbdcc609901c459d
Author: Jon Vexler <[email protected]>
AuthorDate: Thu Sep 14 14:25:31 2023 -0400
[MINOR] Update cleaner docs (#9716)
Co-authored-by: Jonathan Vexler <=>
Co-authored-by: Y Ethan Guo <[email protected]>
---
.../org/apache/hudi/config/HoodieCleanConfig.java | 43 ++++++++++++----------
1 file changed, 24 insertions(+), 19 deletions(-)
diff --git
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieCleanConfig.java
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieCleanConfig.java
index a129ff95090..a4114152023 100644
---
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieCleanConfig.java
+++
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/config/HoodieCleanConfig.java
@@ -35,6 +35,10 @@ import java.io.FileReader;
import java.io.IOException;
import java.util.Properties;
+import static
org.apache.hudi.common.model.HoodieCleaningPolicy.KEEP_LATEST_BY_HOURS;
+import static
org.apache.hudi.common.model.HoodieCleaningPolicy.KEEP_LATEST_COMMITS;
+import static
org.apache.hudi.common.model.HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS;
+
/**
* Clean related config.
*/
@@ -52,9 +56,9 @@ public class HoodieCleanConfig extends HoodieConfig {
.key("hoodie.clean.automatic")
.defaultValue("true")
.markAdvanced()
- .withDocumentation("When enabled, the cleaner table service is invoked
immediately after each commit,"
- + " to delete older file slices. It's recommended to enable this, to
ensure metadata and data storage"
- + " growth is bounded.");
+ .withDocumentation("When enabled, the cleaner table service is invoked
immediately after each commit, "
+ + "to delete older file slices. It's recommended to enable this, to
ensure metadata and data storage "
+ + "growth is bounded.");
public static final ConfigProperty<String> ASYNC_CLEAN = ConfigProperty
.key("hoodie.clean.async")
@@ -67,7 +71,7 @@ public class HoodieCleanConfig extends HoodieConfig {
@Deprecated
public static final ConfigProperty<String> CLEANER_POLICY = ConfigProperty
.key("hoodie.cleaner.policy")
- .defaultValue(HoodieCleaningPolicy.KEEP_LATEST_COMMITS.name())
+ .defaultValue(KEEP_LATEST_COMMITS.name())
.withDocumentation(HoodieCleaningPolicy.class)
.markAdvanced()
.withInferFunction(cfg -> {
@@ -81,13 +85,13 @@ public class HoodieCleanConfig extends HoodieConfig {
// "hoodie.cleaner.hours.retained" (inferred as KEEP_LATEST_BY_HOURS)
// "hoodie.cleaner.fileversions.retained" (inferred as
KEEP_LATEST_FILE_VERSIONS)
if (isCommitsRetainedConfigured && !isHoursRetainedConfigured &&
!isFileVersionsRetainedConfigured) {
- return Option.of(HoodieCleaningPolicy.KEEP_LATEST_COMMITS.name());
+ return Option.of(KEEP_LATEST_COMMITS.name());
}
if (!isCommitsRetainedConfigured && isHoursRetainedConfigured &&
!isFileVersionsRetainedConfigured) {
- return Option.of(HoodieCleaningPolicy.KEEP_LATEST_BY_HOURS.name());
+ return Option.of(KEEP_LATEST_BY_HOURS.name());
}
if (!isCommitsRetainedConfigured && !isHoursRetainedConfigured &&
isFileVersionsRetainedConfigured) {
- return
Option.of(HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS.name());
+ return Option.of(KEEP_LATEST_FILE_VERSIONS.name());
}
return Option.empty();
});
@@ -95,22 +99,23 @@ public class HoodieCleanConfig extends HoodieConfig {
public static final ConfigProperty<String> CLEANER_COMMITS_RETAINED =
ConfigProperty
.key(CLEANER_COMMITS_RETAINED_KEY)
.defaultValue("10")
- .withDocumentation("Number of commits to retain, without cleaning. This
will be retained for num_of_commits * time_between_commits "
- + "(scheduled). This also directly translates into how much data
retention the table supports for incremental queries.");
+ .withDocumentation("When " + KEEP_LATEST_COMMITS.name() + " cleaning
policy is used, the number of commits to retain, without cleaning. "
+ + "This will be retained for num_of_commits * time_between_commits
(scheduled). This also directly translates into how much "
+ + "data retention the table supports for incremental queries.");
public static final ConfigProperty<String> CLEANER_HOURS_RETAINED =
ConfigProperty.key(CLEANER_HOURS_RETAINED_KEY)
.defaultValue("24")
.markAdvanced()
- .withDocumentation("Number of hours for which commits need to be
retained. This config provides a more flexible option as"
- + "compared to number of commits retained for cleaning service.
Setting this property ensures all the files, but the latest in a file group,"
- + " corresponding to commits with commit times older than the
configured number of hours to be retained are cleaned.");
+ .withDocumentation("When " + KEEP_LATEST_BY_HOURS.name() + " cleaning
policy is used, the number of hours for which commits need to be retained. "
+ + "This config provides a more flexible option as compared to number
of commits retained for cleaning service. Setting this property ensures "
+ + "all the files, but the latest in a file group, corresponding to
commits with commit times older than the configured number of hours to be
retained are cleaned.");
public static final ConfigProperty<String> CLEANER_FILE_VERSIONS_RETAINED =
ConfigProperty
.key(CLEANER_FILE_VERSIONS_RETAINED_KEY)
.defaultValue("3")
.markAdvanced()
- .withDocumentation("When " +
HoodieCleaningPolicy.KEEP_LATEST_FILE_VERSIONS.name() + " cleaning policy is
used, "
- + " the minimum number of file slices to retain in each file group,
during cleaning.");
+ .withDocumentation("When " + KEEP_LATEST_FILE_VERSIONS.name() + "
cleaning policy is used, "
+ + "the minimum number of file slices to retain in each file group,
during cleaning.");
public static final ConfigProperty<String> CLEAN_TRIGGER_STRATEGY =
ConfigProperty
.key("hoodie.clean.trigger.strategy")
@@ -129,8 +134,8 @@ public class HoodieCleanConfig extends HoodieConfig {
.defaultValue("true")
.markAdvanced()
.withDocumentation("When enabled, the plans for each cleaner service run
is computed incrementally off the events "
- + " in the timeline, since the last cleaner run. This is much more
efficient than obtaining listings for the full"
- + " table for each planning (even with a metadata table).");
+ + "in the timeline, since the last cleaner run. This is much more
efficient than obtaining listings for the full "
+ + "table for each planning (even with a metadata table).");
public static final ConfigProperty<String> FAILED_WRITES_CLEANER_POLICY =
ConfigProperty
.key("hoodie.cleaner.policy.failed.writes")
@@ -175,9 +180,9 @@ public class HoodieCleanConfig extends HoodieConfig {
.defaultValue("false")
.markAdvanced()
.withDocumentation("When set to true, cleaner also deletes the bootstrap
base file when it's skeleton base file is "
- + " cleaned. Turn this to true, if you want to ensure the bootstrap
dataset storage is reclaimed over time, as the"
- + " table receives updates/deletes. Another reason to turn this on,
would be to ensure data residing in bootstrap "
- + " base files are also physically deleted, to comply with data
privacy enforcement processes.");
+ + "cleaned. Turn this to true, if you want to ensure the bootstrap
dataset storage is reclaimed over time, as the "
+ + "table receives updates/deletes. Another reason to turn this on,
would be to ensure data residing in bootstrap "
+ + "base files are also physically deleted, to comply with data
privacy enforcement processes.");
/** @deprecated Use {@link #CLEANER_POLICY} and its methods instead */