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 218f0d9f16ee2..540a127e0983b 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 @@ -200,10 +200,13 @@ public R get(Object key) { @Override public R put(T key, R value) { if (this.currentInMemoryMapSize >= maxInMemorySizeInBytes || inMemoryMap.size() % NUMBER_OF_RECORDS_TO_ESTIMATE_PAYLOAD_SIZE == 0) { - this.estimatedPayloadSize = (long) (this.estimatedPayloadSize * 0.9 - + (keySizeEstimator.sizeEstimate(key) + valueSizeEstimator.sizeEstimate(value)) * 0.1); + long tmpEstimatedPayloadSize = (long) (this.estimatedPayloadSize * 0.9 + + (keySizeEstimator.sizeEstimate(key) + valueSizeEstimator.sizeEstimate(value)) * 0.1); + if (this.estimatedPayloadSize != tmpEstimatedPayloadSize) { + LOG.info("Update Estimated Payload size to => " + this.estimatedPayloadSize); + } + this.estimatedPayloadSize = tmpEstimatedPayloadSize; this.currentInMemoryMapSize = this.inMemoryMap.size() * this.estimatedPayloadSize; - LOG.info("Update Estimated Payload size to => " + this.estimatedPayloadSize); } if (this.currentInMemoryMapSize < maxInMemorySizeInBytes || inMemoryMap.containsKey(key)) {