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 2353d96c2e3b fix: Wiring in clean max commits to metadata table
(#17819)
2353d96c2e3b is described below
commit 2353d96c2e3b2faa593dafd841a10dbd2e021beb
Author: Sivabalan Narayanan <[email protected]>
AuthorDate: Fri Jan 9 22:32:39 2026 -0800
fix: Wiring in clean max commits to metadata table (#17819)
---
.../java/org/apache/hudi/metadata/HoodieMetadataWriteUtils.java | 1 +
.../java/org/apache/hudi/metadata/TestHoodieMetadataWriteUtils.java | 6 +++++-
2 files changed, 6 insertions(+), 1 deletion(-)
diff --git
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieMetadataWriteUtils.java
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieMetadataWriteUtils.java
index c9092464558d..dfbd67356906 100644
---
a/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieMetadataWriteUtils.java
+++
b/hudi-client/hudi-client-common/src/main/java/org/apache/hudi/metadata/HoodieMetadataWriteUtils.java
@@ -165,6 +165,7 @@ public class HoodieMetadataWriteUtils {
.withAutoClean(false)
.withCleanerParallelism(MDT_DEFAULT_PARALLELISM)
.withFailedWritesCleaningPolicy(failedWritesCleaningPolicy)
+ .withMaxCommitsBeforeCleaning(writeConfig.getCleaningMaxCommits())
.withCleanerPolicy(dataTableCleaningPolicy);
if
(HoodieCleaningPolicy.KEEP_LATEST_COMMITS.equals(dataTableCleaningPolicy)) {
diff --git
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataWriteUtils.java
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataWriteUtils.java
index 3b343d3dc12a..0175cb60d663 100644
---
a/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataWriteUtils.java
+++
b/hudi-client/hudi-client-common/src/test/java/org/apache/hudi/metadata/TestHoodieMetadataWriteUtils.java
@@ -50,6 +50,7 @@ public class TestHoodieMetadataWriteUtils {
HoodieTableVersion.SIX);
assertEquals(HoodieFailedWritesCleaningPolicy.EAGER,
metadataWriteConfig1.getFailedWritesCleanPolicy());
assertEquals(HoodieCleaningPolicy.KEEP_LATEST_COMMITS,
metadataWriteConfig1.getCleanerPolicy());
+ assertEquals(1, metadataWriteConfig1.getCleaningMaxCommits());
// default value already greater than data cleaner commits retained * 1.2
assertEquals(HoodieMetadataConfig.DEFAULT_METADATA_CLEANER_COMMITS_RETAINED,
metadataWriteConfig1.getCleanerCommitsRetained());
@@ -60,7 +61,9 @@ public class TestHoodieMetadataWriteUtils {
.withPath("/tmp")
.withCleanConfig(HoodieCleanConfig.newBuilder()
.withCleanerPolicy(HoodieCleaningPolicy.KEEP_LATEST_COMMITS)
- .retainCommits(20).build())
+ .retainCommits(20)
+ .withMaxCommitsBeforeCleaning(10)
+ .build())
.build();
HoodieWriteConfig metadataWriteConfig2 =
HoodieMetadataWriteUtils.createMetadataWriteConfig(writeConfig2,
HoodieFailedWritesCleaningPolicy.EAGER,
HoodieTableVersion.SIX);
@@ -68,6 +71,7 @@ public class TestHoodieMetadataWriteUtils {
assertEquals(HoodieCleaningPolicy.KEEP_LATEST_COMMITS,
metadataWriteConfig2.getCleanerPolicy());
// data cleaner commits retained * 1.2 is greater than default
assertEquals(24, metadataWriteConfig2.getCleanerCommitsRetained());
+ assertEquals(10, metadataWriteConfig2.getCleaningMaxCommits());
}
@Test