diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/DefaultSizeEstimator.java b/hudi-common/src/main/java/org/apache/hudi/common/util/DefaultSizeEstimator.java index 0e6d78f1f224d..8032a04df4647 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/DefaultSizeEstimator.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/DefaultSizeEstimator.java @@ -18,12 +18,14 @@ package org.apache.hudi.common.util; +import java.io.Serializable; + /** * Default implementation of size-estimator that uses Twitter's ObjectSizeCalculator. * * @param */ -public class DefaultSizeEstimator implements SizeEstimator { +public class DefaultSizeEstimator implements SizeEstimator, Serializable { @Override public long sizeEstimate(T t) { diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/HoodieRecordSizeEstimator.java b/hudi-common/src/main/java/org/apache/hudi/common/util/HoodieRecordSizeEstimator.java index 78f7b1b9bb105..88a0f70cd831c 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/HoodieRecordSizeEstimator.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/HoodieRecordSizeEstimator.java @@ -26,12 +26,14 @@ import org.apache.log4j.LogManager; import org.apache.log4j.Logger; +import java.io.Serializable; + /** * Size Estimator for Hoodie record payload. * * @param */ -public class HoodieRecordSizeEstimator implements SizeEstimator> { +public class HoodieRecordSizeEstimator implements SizeEstimator>, Serializable { private static final Logger LOG = LogManager.getLogger(HoodieRecordSizeEstimator.class); diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/collection/ExternalSpillableMap.java b/hudi-common/src/main/java/org/apache/hudi/common/util/collection/ExternalSpillableMap.java index a6e8d5cfb35c0..8d2707d6045bb 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/collection/ExternalSpillableMap.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/collection/ExternalSpillableMap.java @@ -52,7 +52,7 @@ * map may occupy more memory than is available, resulting in OOM. However, if the spill threshold is too low, we spill * frequently and incur unnecessary disk writes. */ -public class ExternalSpillableMap implements Map { +public class ExternalSpillableMap implements Map, Serializable { // Find the actual estimated payload size after inserting N records private static final int NUMBER_OF_RECORDS_TO_ESTIMATE_PAYLOAD_SIZE = 100; diff --git a/hudi-common/src/main/java/org/apache/hudi/common/util/collection/RocksDBBasedMap.java b/hudi-common/src/main/java/org/apache/hudi/common/util/collection/RocksDBBasedMap.java index c4fbd3a8cb0db..67b4ffabe2e57 100644 --- a/hudi-common/src/main/java/org/apache/hudi/common/util/collection/RocksDBBasedMap.java +++ b/hudi-common/src/main/java/org/apache/hudi/common/util/collection/RocksDBBasedMap.java @@ -29,12 +29,12 @@ /** * A map's implementation based on RocksDB. */ -public final class RocksDBBasedMap implements Map { +public final class RocksDBBasedMap implements Map, Serializable { private static final String COL_FAMILY_NAME = "map_handle"; private final String rocksDbStoragePath; - private RocksDBDAO rocksDBDAO; + private transient RocksDBDAO rocksDBDAO; private final String columnFamilyName; public RocksDBBasedMap(String rocksDbStoragePath) {