This is an automated email from the ASF dual-hosted git repository.
danny0405 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 02e277045af [MINOR] Time generator defaults to sleeping for 200ms even
with in-process lock provider (#13183)
02e277045af is described below
commit 02e277045af713333aac1f4930908fcb4bc996cd
Author: Tim Brown <[email protected]>
AuthorDate: Sun Apr 20 18:17:32 2025 -0500
[MINOR] Time generator defaults to sleeping for 200ms even with in-process
lock provider (#13183)
---
.../apache/hudi/common/config/HoodieConfig.java | 2 +-
.../common/config/HoodieTimeGeneratorConfig.java | 3 +-
.../config/TestHoodieTimeGeneratorConfig.java | 48 ++++++++++++++++++++++
3 files changed, 50 insertions(+), 3 deletions(-)
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
index 3dbefc96689..5bc47839f93 100644
--- a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
+++ b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieConfig.java
@@ -113,7 +113,7 @@ public class HoodieConfig implements Serializable {
}
}
- public Boolean contains(String key) {
+ public boolean contains(String key) {
return props.containsKey(key);
}
diff --git
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
index 1dce6f71c09..a5024917529 100644
---
a/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
+++
b/hudi-common/src/main/java/org/apache/hudi/common/config/HoodieTimeGeneratorConfig.java
@@ -132,11 +132,10 @@ public class HoodieTimeGeneratorConfig extends
HoodieConfig {
}
public HoodieTimeGeneratorConfig build() {
-
timeGeneratorConfig.setDefaults(HoodieTimeGeneratorConfig.class.getName());
-
if (!timeGeneratorConfig.contains(LOCK_PROVIDER_KEY)) {
timeGeneratorConfig.setValue(LOCK_PROVIDER_KEY, DEFAULT_LOCK_PROVIDER);
}
+
timeGeneratorConfig.setDefaults(HoodieTimeGeneratorConfig.class.getName());
return timeGeneratorConfig;
}
}
diff --git
a/hudi-common/src/test/java/org/apache/hudi/common/config/TestHoodieTimeGeneratorConfig.java
b/hudi-common/src/test/java/org/apache/hudi/common/config/TestHoodieTimeGeneratorConfig.java
new file mode 100644
index 00000000000..c6e824c1772
--- /dev/null
+++
b/hudi-common/src/test/java/org/apache/hudi/common/config/TestHoodieTimeGeneratorConfig.java
@@ -0,0 +1,48 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+package org.apache.hudi.common.config;
+
+import org.apache.hudi.common.util.StringUtils;
+
+import org.junit.jupiter.params.ParameterizedTest;
+import org.junit.jupiter.params.provider.CsvSource;
+
+import static org.apache.hudi.common.config.HoodieCommonConfig.BASE_PATH;
+import static org.junit.jupiter.api.Assertions.assertEquals;
+
+class TestHoodieTimeGeneratorConfig {
+
+ @ParameterizedTest
+ @CsvSource(value = {
+ "org.apache.hudi.client.transaction.lock.InProcessLockProvider,1",
+ "org.apache.hudi.client.transaction.lock.ZookeeperBasedLockProvider,200",
+ ",1",
+ "any_string,200"
+ })
+ void testMaxSkewDefaults(String lockProvider, long expected) {
+ TypedProperties properties = new TypedProperties();
+ properties.setProperty(BASE_PATH.key(), "/tmp/path");
+ if (!StringUtils.isNullOrEmpty(lockProvider)) {
+ properties.setProperty(HoodieTimeGeneratorConfig.LOCK_PROVIDER_KEY,
lockProvider);
+ }
+ HoodieTimeGeneratorConfig config =
HoodieTimeGeneratorConfig.newBuilder().fromProperties(properties).build();
+ assertEquals(expected, config.getMaxExpectedClockSkewMs());
+ }
+}