You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@hudi.apache.org by vh...@apache.org on 2026/09/18 06:15:51 UTC

(hudi) branch dedupe-test-bloom-filter created (now c2d693d59538)

This is an automated email from the ASF dual-hosted git repository.

voonhous pushed a change to branch dedupe-test-bloom-filter
in repository https://gitbox.apache.org/repos/asf/hudi.git


      at c2d693d59538 test(common): drop duplicated bloom-filter test helper

This branch includes the following new commits:

     new c2d693d59538 test(common): drop duplicated bloom-filter test helper

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.



(hudi) 01/01: test(common): drop duplicated bloom-filter test helper

Posted by vh...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

voonhous pushed a commit to branch dedupe-test-bloom-filter
in repository https://gitbox.apache.org/repos/asf/hudi.git

commit c2d693d59538c988421fba014619bd566ebb7db2
Author: voon <vo...@gmail.com>
AuthorDate: Fri Sep 18 14:05:21 2026 +0800

    test(common): drop duplicated bloom-filter test helper
    
    TestBloomFilter and TestHoodieFileMetadataMerger each carried a
    byte-identical getBloomFilter(typeCode, numEntries, errorRate,
    maxEntries) helper. Its SIMPLE branch passes -1 for maxEntries, but
    BloomFilterFactory.createBloomFilter ignores maxNumberOfEntries when
    the type code is SIMPLE, so both branches build the same filter and
    the helper is just a rename of the factory call with the arguments
    reordered.
    
    Delete both copies and call BloomFilterFactory.createBloomFilter
    directly at the eight call sites, which is what every other bloom
    filter test in the repo already does.
---
 .../core/io/storage/TestHoodieFileMetadataMerger.java  | 14 +++-----------
 .../org/apache/hudi/common/bloom/TestBloomFilter.java  | 18 +++++-------------
 2 files changed, 8 insertions(+), 24 deletions(-)

diff --git a/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java b/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java
index 96e589e7872d..92d13cd96989 100644
--- a/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java
+++ b/hudi-common/src/test/java/org/apache/hudi/core/io/storage/TestHoodieFileMetadataMerger.java
@@ -124,7 +124,7 @@ public class TestHoodieFileMetadataMerger {
     int[] sizes = {100, 1000, 10000};
     BloomFilter bloomFilter = null;
     for (int size : sizes) {
-      BloomFilter filter = getBloomFilter(bloomFilterType, 1000, 0.000001, 100000);
+      BloomFilter filter = BloomFilterFactory.createBloomFilter(1000, 0.000001, 100000, bloomFilterType);
       for (int i = 0; i < size; i++) {
         String key = String.format("key%d", size + i);
         filter.add(key);
@@ -150,7 +150,7 @@ public class TestHoodieFileMetadataMerger {
   @Test
   public void testDifferentTypeOfBloomFilter() {
     HoodieFileMetadataMerger metaMerge = new HoodieFileMetadataMerger();
-    BloomFilter simpleFilter = getBloomFilter(BloomFilterTypeCode.SIMPLE.name(), 1000, 0.000001, 100000);
+    BloomFilter simpleFilter = BloomFilterFactory.createBloomFilter(1000, 0.000001, 100000, BloomFilterTypeCode.SIMPLE.name());
     for (int i = 0; i < 100; i++) {
       String key = String.format("key%d", 100 + i);
       simpleFilter.add(key);
@@ -160,7 +160,7 @@ public class TestHoodieFileMetadataMerger {
             HOODIE_BLOOM_FILTER_TYPE_CODE, BloomFilterTypeCode.SIMPLE.name(),
             HOODIE_AVRO_BLOOM_FILTER_METADATA_KEY, simpleFilter.serializeToString())
     );
-    BloomFilter dynamicFilter = getBloomFilter(BloomFilterTypeCode.DYNAMIC_V0.name(), 1000, 0.000001, 100000);
+    BloomFilter dynamicFilter = BloomFilterFactory.createBloomFilter(1000, 0.000001, 100000, BloomFilterTypeCode.DYNAMIC_V0.name());
     for (int i = 0; i < 100; i++) {
       String key = String.format("key%d", 100 + i);
       dynamicFilter.add(key);
@@ -175,14 +175,6 @@ public class TestHoodieFileMetadataMerger {
     );
   }
 
-  private BloomFilter getBloomFilter(String typeCode, int numEntries, double errorRate, int maxEntries) {
-    if (typeCode.equalsIgnoreCase(BloomFilterTypeCode.SIMPLE.name())) {
-      return BloomFilterFactory.createBloomFilter(numEntries, errorRate, -1, typeCode);
-    } else {
-      return BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode);
-    }
-  }
-
   private Map<String, String> newMap(String... kvs) {
     ValidationUtils.checkArgument(kvs.length == 0 || kvs.length % 2 == 0, "num of input args should be 0 or multiples of 2");
     HashMap map = new HashMap();
diff --git a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
index 80dba1e434a0..7a881bf4b331 100644
--- a/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
+++ b/hudi-hadoop-common/src/test/java/org/apache/hudi/common/bloom/TestBloomFilter.java
@@ -57,7 +57,7 @@ public class TestBloomFilter {
     int[] sizes = {100, 1000, 10000};
     for (int size : sizes) {
       inputs = new ArrayList<>();
-      BloomFilter filter = getBloomFilter(typeCode, size, 0.000001, size * 10);
+      BloomFilter filter = BloomFilterFactory.createBloomFilter(size, 0.000001, size * 10, typeCode);
       for (int i = 0; i < size; i++) {
         String key = UUID.randomUUID().toString();
         inputs.add(key);
@@ -82,7 +82,7 @@ public class TestBloomFilter {
     int[] sizes = {100, 1000, 10000};
     BloomFilter bloomFilter = null;
     for (int size : sizes) {
-      BloomFilter filter = getBloomFilter(typeCode, 20000, 0.00000001, 100000);
+      BloomFilter filter = BloomFilterFactory.createBloomFilter(20000, 0.00000001, 100000, typeCode);
       for (int i = 0; i < size; i++) {
         String key = String.format("key%d",size + i);
         inputs.add(key);
@@ -164,7 +164,7 @@ public class TestBloomFilter {
     int[] sizes = {100, 1000, 10000};
     for (int size : sizes) {
       inputs = new ArrayList<>();
-      BloomFilter filter = getBloomFilter(typeCode, size, 0.000001, size * 10);
+      BloomFilter filter = BloomFilterFactory.createBloomFilter(size, 0.000001, size * 10, typeCode);
       for (int i = 0; i < size; i++) {
         String key = UUID.randomUUID().toString();
         inputs.add(key);
@@ -215,7 +215,7 @@ public class TestBloomFilter {
           + ".bf.data";
       serializedFilter = readLastLineFromResourceFile("/format/bloom-filter/hadoop/" + fileName);
     } else {
-      BloomFilter inputFilter = getBloomFilter(typeCode, numEntries, errorRate, maxEntries);
+      BloomFilter inputFilter = BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode);
       for (String key : keyList) {
         inputFilter.add(key);
       }
@@ -225,14 +225,6 @@ public class TestBloomFilter {
         serializedFilter, keyList, lib, typeCode, numEntries, errorRate, hashType, maxEntries);
   }
 
-  BloomFilter getBloomFilter(String typeCode, int numEntries, double errorRate, int maxEntries) {
-    if (typeCode.equalsIgnoreCase(BloomFilterTypeCode.SIMPLE.name())) {
-      return BloomFilterFactory.createBloomFilter(numEntries, errorRate, -1, typeCode);
-    } else {
-      return BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode);
-    }
-  }
-
   private void validateBloomFilter(String serializedFilter, List<String> keyList, String lib,
                                    String typeCode, int numEntries, double errorRate,
                                    int hashType, int maxEntries) {
@@ -242,7 +234,7 @@ public class TestBloomFilter {
       assertTrue(bloomFilter.mightContain(key), "Filter should have returned true for " + key);
     }
     if ("hadoop".equals(lib) && hashType == Hash.MURMUR_HASH) {
-      BloomFilter hudiBloomFilter = getBloomFilter(typeCode, numEntries, errorRate, maxEntries);
+      BloomFilter hudiBloomFilter = BloomFilterFactory.createBloomFilter(numEntries, errorRate, maxEntries, typeCode);
       for (String key : keyList) {
         hudiBloomFilter.add(key);
       }