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

jackie pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/pinot.git


The following commit(s) were added to refs/heads/master by this push:
     new d1021dfd60 update map initial capacity (#11709)
d1021dfd60 is described below

commit d1021dfd60911c57fe124e6882ebcd51bcc012ed
Author: Haitao Zhang <[email protected]>
AuthorDate: Wed Oct 4 15:59:36 2023 -0700

    update map initial capacity (#11709)
---
 .../main/java/org/apache/pinot/common/datablock/BaseDataBlock.java   | 3 ++-
 .../main/java/org/apache/pinot/common/datatable/BaseDataTable.java   | 5 +++--
 .../main/java/org/apache/pinot/common/datatable/DataTableImplV2.java | 3 ++-
 .../main/java/org/apache/pinot/common/datatable/DataTableImplV3.java | 3 ++-
 .../main/java/org/apache/pinot/common/datatable/DataTableImplV4.java | 3 ++-
 .../pinot/controller/api/resources/PinotInstanceRestletResource.java | 4 +++-
 .../controller/helix/core/minion/PinotHelixTaskResourceManager.java  | 3 ++-
 .../controller/helix/core/realtime/SegmentCompletionManager.java     | 3 ++-
 .../src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java | 3 ++-
 .../core/operator/transform/function/TransformFunctionFactory.java   | 3 ++-
 .../apache/pinot/core/query/selection/SelectionOperatorUtils.java    | 3 ++-
 .../java/org/apache/pinot/core/transport/AsyncQueryResponse.java     | 3 ++-
 .../pinot/segment/local/realtime/impl/RealtimeSegmentConfig.java     | 3 ++-
 .../local/realtime/impl/dictionary/BaseOffHeapMutableDictionary.java | 3 ++-
 .../java/org/apache/pinot/tools/admin/command/MoveReplicaGroup.java  | 5 +++--
 15 files changed, 33 insertions(+), 17 deletions(-)

diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/datablock/BaseDataBlock.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/datablock/BaseDataBlock.java
index f0492dbe80..8c6410b75d 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/datablock/BaseDataBlock.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/datablock/BaseDataBlock.java
@@ -32,6 +32,7 @@ import org.apache.pinot.common.datatable.DataTableImplV3;
 import org.apache.pinot.common.datatable.DataTableUtils;
 import org.apache.pinot.common.response.ProcessingException;
 import org.apache.pinot.common.utils.DataSchema;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.common.utils.RoaringBitmapUtils;
 import org.apache.pinot.spi.accounting.ThreadResourceUsageProvider;
 import org.apache.pinot.spi.utils.BigDecimalUtils;
@@ -559,7 +560,7 @@ public abstract class BaseDataBlock implements DataBlock {
   private Map<Integer, String> deserializeExceptions(ByteBuffer buffer)
       throws IOException {
     int numExceptions = buffer.getInt();
-    Map<Integer, String> exceptions = new HashMap<>(numExceptions);
+    Map<Integer, String> exceptions = new 
HashMap<>(HashUtil.getHashMapCapacity(numExceptions));
     for (int i = 0; i < numExceptions; i++) {
       int errCode = buffer.getInt();
       String errMessage = DataTableUtils.decodeString(buffer);
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/BaseDataTable.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/BaseDataTable.java
index 06ba4b34f1..5fce2ef759 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/BaseDataTable.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/BaseDataTable.java
@@ -28,6 +28,7 @@ import java.util.Map;
 import javax.annotation.Nullable;
 import org.apache.pinot.common.CustomObject;
 import org.apache.pinot.common.utils.DataSchema;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.spi.utils.BigDecimalUtils;
 import org.apache.pinot.spi.utils.ByteArray;
 import org.apache.pinot.spi.utils.BytesUtils;
@@ -118,12 +119,12 @@ public abstract class BaseDataTable implements DataTable {
   protected Map<String, Map<Integer, String>> 
deserializeDictionaryMap(ByteBuffer buffer)
       throws IOException {
     int numDictionaries = buffer.getInt();
-    Map<String, Map<Integer, String>> dictionaryMap = new 
HashMap<>(numDictionaries);
+    Map<String, Map<Integer, String>> dictionaryMap = new 
HashMap<>(HashUtil.getHashMapCapacity(numDictionaries));
 
     for (int i = 0; i < numDictionaries; i++) {
       String column = DataTableUtils.decodeString(buffer);
       int dictionarySize = buffer.getInt();
-      Map<Integer, String> dictionary = new HashMap<>(dictionarySize);
+      Map<Integer, String> dictionary = new 
HashMap<>(HashUtil.getHashMapCapacity(dictionarySize));
       for (int j = 0; j < dictionarySize; j++) {
         int key = buffer.getInt();
         String value = DataTableUtils.decodeString(buffer);
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV2.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV2.java
index c517502ebc..261e1edc46 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV2.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV2.java
@@ -27,6 +27,7 @@ import java.util.Map;
 import java.util.Map.Entry;
 import org.apache.pinot.common.response.ProcessingException;
 import org.apache.pinot.common.utils.DataSchema;
+import org.apache.pinot.common.utils.HashUtil;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
 
@@ -130,7 +131,7 @@ public class DataTableImplV2 extends BaseDataTable {
   private Map<String, String> deserializeMetadata(ByteBuffer buffer)
       throws IOException {
     int numEntries = buffer.getInt();
-    Map<String, String> metadata = new HashMap<>(numEntries);
+    Map<String, String> metadata = new 
HashMap<>(HashUtil.getHashMapCapacity(numEntries));
 
     for (int i = 0; i < numEntries; i++) {
       String key = DataTableUtils.decodeString(buffer);
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV3.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV3.java
index c855185a02..af4b7eff46 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV3.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV3.java
@@ -29,6 +29,7 @@ import java.util.HashMap;
 import java.util.Map;
 import org.apache.pinot.common.response.ProcessingException;
 import org.apache.pinot.common.utils.DataSchema;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.spi.accounting.ThreadResourceUsageProvider;
 
 import static java.nio.charset.StandardCharsets.UTF_8;
@@ -391,7 +392,7 @@ public class DataTableImplV3 extends BaseDataTable {
   private Map<Integer, String> deserializeExceptions(ByteBuffer buffer)
       throws IOException {
     int numExceptions = buffer.getInt();
-    Map<Integer, String> exceptions = new HashMap<>(numExceptions);
+    Map<Integer, String> exceptions = new 
HashMap<>(HashUtil.getHashMapCapacity(numExceptions));
     for (int i = 0; i < numExceptions; i++) {
       int errCode = buffer.getInt();
       String errMessage = DataTableUtils.decodeString(buffer);
diff --git 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV4.java
 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV4.java
index a4d69ee714..963a2e96cc 100644
--- 
a/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV4.java
+++ 
b/pinot-common/src/main/java/org/apache/pinot/common/datatable/DataTableImplV4.java
@@ -33,6 +33,7 @@ import org.apache.pinot.common.CustomObject;
 import org.apache.pinot.common.datablock.DataBlockUtils;
 import org.apache.pinot.common.response.ProcessingException;
 import org.apache.pinot.common.utils.DataSchema;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.common.utils.RoaringBitmapUtils;
 import org.apache.pinot.spi.accounting.ThreadResourceUsageProvider;
 import org.apache.pinot.spi.annotations.InterfaceStability;
@@ -568,7 +569,7 @@ public class DataTableImplV4 implements DataTable {
   private Map<Integer, String> deserializeExceptions(ByteBuffer buffer)
       throws IOException {
     int numExceptions = buffer.getInt();
-    Map<Integer, String> exceptions = new HashMap<>(numExceptions);
+    Map<Integer, String> exceptions = new 
HashMap<>(HashUtil.getHashMapCapacity(numExceptions));
     for (int i = 0; i < numExceptions; i++) {
       int errCode = buffer.getInt();
       String errMessage = DataTableUtils.decodeString(buffer);
diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotInstanceRestletResource.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotInstanceRestletResource.java
index 0433f977f3..977499cf73 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotInstanceRestletResource.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/api/resources/PinotInstanceRestletResource.java
@@ -53,6 +53,7 @@ import javax.ws.rs.core.HttpHeaders;
 import javax.ws.rs.core.MediaType;
 import javax.ws.rs.core.Response;
 import org.apache.helix.model.InstanceConfig;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.common.utils.config.InstanceUtils;
 import org.apache.pinot.common.utils.config.TagNameUtils;
 import org.apache.pinot.controller.api.access.AccessType;
@@ -502,7 +503,8 @@ public class PinotInstanceRestletResource {
     Map<String, Integer> tagToInstanceCountMap = 
getUpdatedTagToInstanceCountMap(requests);
     Map<String, Integer> tagDeficiency = 
computeTagDeficiency(tagToInstanceCountMap, tagMinServerMap);
 
-    Map<String, List<OperationValidationResponse.ErrorWrapper>> responseMap = 
new HashMap<>(requests.size());
+    Map<String, List<OperationValidationResponse.ErrorWrapper>> responseMap
+        = new HashMap<>(HashUtil.getHashMapCapacity(requests.size()));
     List<OperationValidationResponse.ErrorWrapper> tenantIssues = new 
ArrayList<>();
     requests.forEach(request -> responseMap.put(request.getInstanceName(), new 
ArrayList<>()));
     for (InstanceTagUpdateRequest request : requests) {
diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotHelixTaskResourceManager.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotHelixTaskResourceManager.java
index 86ef3cef9a..d9fd64bd04 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotHelixTaskResourceManager.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/minion/PinotHelixTaskResourceManager.java
@@ -55,6 +55,7 @@ import org.apache.helix.zookeeper.datamodel.ZNRecord;
 import org.apache.http.conn.HttpClientConnectionManager;
 import org.apache.pinot.common.minion.MinionTaskMetadataUtils;
 import org.apache.pinot.common.utils.DateTimeUtils;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.controller.helix.core.PinotHelixResourceManager;
 import org.apache.pinot.controller.util.CompletionServiceHelper;
 import org.apache.pinot.core.common.MinionConstants;
@@ -551,7 +552,7 @@ public class PinotHelixTaskResourceManager {
       return Collections.emptyMap();
     }
     Map<String, TaskConfig> helixTaskConfigs = jobConfig.getTaskConfigMap();
-    Map<String, PinotTaskConfig> taskConfigs = new 
HashMap<>(helixTaskConfigs.size());
+    Map<String, PinotTaskConfig> taskConfigs = new 
HashMap<>(HashUtil.getHashMapCapacity(helixTaskConfigs.size()));
     if (StringUtils.isEmpty(subtaskNames)) {
       helixTaskConfigs.forEach((sub, cfg) -> taskConfigs.put(sub, 
PinotTaskConfig.fromHelixTaskConfig(cfg)));
       return taskConfigs;
diff --git 
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/SegmentCompletionManager.java
 
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/SegmentCompletionManager.java
index 8900ffef5c..b593da230c 100644
--- 
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/SegmentCompletionManager.java
+++ 
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/realtime/SegmentCompletionManager.java
@@ -31,6 +31,7 @@ import 
org.apache.pinot.common.metadata.segment.SegmentZKMetadata;
 import org.apache.pinot.common.metrics.ControllerMeter;
 import org.apache.pinot.common.metrics.ControllerMetrics;
 import org.apache.pinot.common.protocols.SegmentCompletionProtocol;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.common.utils.LLCSegmentName;
 import org.apache.pinot.common.utils.URIUtils;
 import org.apache.pinot.controller.LeadControllerManager;
@@ -389,7 +390,7 @@ public class SegmentCompletionManager {
       _realtimeTableName = 
TableNameBuilder.REALTIME.tableNameWithType(_rawTableName);
       _numReplicas = numReplicas;
       _segmentManager = segmentManager;
-      _commitStateMap = new HashMap<>(_numReplicas);
+      _commitStateMap = new 
HashMap<>(HashUtil.getHashMapCapacity(_numReplicas));
       _excludedServerStateMap = new HashSet<>(_numReplicas);
       _segmentCompletionManager = segmentCompletionManager;
       _startTimeMs = _segmentCompletionManager.getCurrentTimeMs();
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java 
b/pinot-core/src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java
index d679419d0e..3b7d187bc7 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/common/ObjectSerDeUtils.java
@@ -67,6 +67,7 @@ import org.apache.datasketches.theta.Sketch;
 import org.apache.datasketches.tuple.aninteger.IntegerSummary;
 import org.apache.datasketches.tuple.aninteger.IntegerSummaryDeserializer;
 import org.apache.pinot.common.CustomObject;
+import org.apache.pinot.common.utils.HashUtil;
 import 
org.apache.pinot.core.query.aggregation.utils.exprminmax.ExprMinMaxObject;
 import org.apache.pinot.core.query.distinct.DistinctTable;
 import org.apache.pinot.core.query.utils.idset.IdSet;
@@ -698,7 +699,7 @@ public class ObjectSerDeUtils {
     @Override
     public HashMap<Object, Object> deserialize(ByteBuffer byteBuffer) {
       int size = byteBuffer.getInt();
-      HashMap<Object, Object> map = new HashMap<>(size);
+      HashMap<Object, Object> map = new 
HashMap<>(HashUtil.getHashMapCapacity(size));
       if (size == 0) {
         return map;
       }
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java
index 16f009e657..f560940b55 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/operator/transform/function/TransformFunctionFactory.java
@@ -236,7 +236,8 @@ public class TransformFunctionFactory {
     typeToImplementation.put(TransformFunctionType.VECTOR_DIMS, 
VectorDimsTransformFunction.class);
     typeToImplementation.put(TransformFunctionType.VECTOR_NORM, 
VectorNormTransformFunction.class);
 
-    Map<String, Class<? extends TransformFunction>> registry = new 
HashMap<>(typeToImplementation.size());
+    Map<String, Class<? extends TransformFunction>> registry
+        = new 
HashMap<>(HashUtil.getHashMapCapacity(typeToImplementation.size()));
     for (Map.Entry<TransformFunctionType, Class<? extends TransformFunction>> 
entry : typeToImplementation.entrySet()) {
       for (String alias : entry.getKey().getAlternativeNames()) {
         registry.put(canonicalize(alias), entry.getValue());
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/query/selection/SelectionOperatorUtils.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/query/selection/SelectionOperatorUtils.java
index 66bbefb3d1..923c744800 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/query/selection/SelectionOperatorUtils.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/query/selection/SelectionOperatorUtils.java
@@ -37,6 +37,7 @@ import 
org.apache.pinot.common.request.context.OrderByExpressionContext;
 import org.apache.pinot.common.response.broker.ResultTable;
 import org.apache.pinot.common.utils.DataSchema;
 import org.apache.pinot.common.utils.DataSchema.ColumnDataType;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.core.common.datatable.DataTableBuilder;
 import org.apache.pinot.core.common.datatable.DataTableBuilderFactory;
 import org.apache.pinot.core.operator.blocks.results.SelectionResultsBlock;
@@ -496,7 +497,7 @@ public class SelectionOperatorUtils {
     Map<String, Integer> columnNameToIndexMap = null;
     if (dataSchema.getColumnNames().length != selectionColumns.size()) {
       // Create updated data schema since one column can be selected multiple 
times.
-      columnNameToIndexMap = new HashMap<>(dataSchema.getColumnNames().length);
+      columnNameToIndexMap = new 
HashMap<>(HashUtil.getHashMapCapacity(dataSchema.getColumnNames().length));
       String[] columnNames = dataSchema.getColumnNames();
       ColumnDataType[] columnDataTypes = dataSchema.getColumnDataTypes();
       for (int i = 0; i < columnNames.length; i++) {
diff --git 
a/pinot-core/src/main/java/org/apache/pinot/core/transport/AsyncQueryResponse.java
 
b/pinot-core/src/main/java/org/apache/pinot/core/transport/AsyncQueryResponse.java
index 3aecb184be..283db8c3b2 100644
--- 
a/pinot-core/src/main/java/org/apache/pinot/core/transport/AsyncQueryResponse.java
+++ 
b/pinot-core/src/main/java/org/apache/pinot/core/transport/AsyncQueryResponse.java
@@ -28,6 +28,7 @@ import java.util.concurrent.atomic.AtomicReference;
 import javax.annotation.Nullable;
 import javax.annotation.concurrent.ThreadSafe;
 import org.apache.pinot.common.datatable.DataTable;
+import org.apache.pinot.common.utils.HashUtil;
 import 
org.apache.pinot.core.transport.server.routing.stats.ServerRoutingStatsManager;
 
 
@@ -54,7 +55,7 @@ public class AsyncQueryResponse implements QueryResponse {
     _queryRouter = queryRouter;
     _requestId = requestId;
     int numServersQueried = serversQueried.size();
-    _responseMap = new ConcurrentHashMap<>(numServersQueried);
+    _responseMap = new 
ConcurrentHashMap<>(HashUtil.getHashMapCapacity(numServersQueried));
     for (ServerRoutingInstance serverRoutingInstance : serversQueried) {
       _responseMap.put(serverRoutingInstance, new ServerResponse(startTimeMs));
     }
diff --git 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/RealtimeSegmentConfig.java
 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/RealtimeSegmentConfig.java
index f4fd501ac5..2ad4a177d4 100644
--- 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/RealtimeSegmentConfig.java
+++ 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/RealtimeSegmentConfig.java
@@ -25,6 +25,7 @@ import java.util.List;
 import java.util.Map;
 import javax.annotation.Nullable;
 import org.apache.pinot.common.metadata.segment.SegmentZKMetadata;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.segment.local.dedup.PartitionDedupMetadataManager;
 import org.apache.pinot.segment.local.segment.index.loader.IndexLoadingConfig;
 import org.apache.pinot.segment.local.upsert.PartitionUpsertMetadataManager;
@@ -250,7 +251,7 @@ public class RealtimeSegmentConfig {
     }
 
     public Builder(Map<String, FieldIndexConfigs> indexConfigsByColName) {
-      _indexConfigByCol = new HashMap<>(indexConfigsByColName.size());
+      _indexConfigByCol = new 
HashMap<>(HashUtil.getHashMapCapacity(indexConfigsByColName.size()));
       for (Map.Entry<String, FieldIndexConfigs> entry : 
indexConfigsByColName.entrySet()) {
         _indexConfigByCol.put(entry.getKey(), new 
FieldIndexConfigs.Builder(entry.getValue()));
       }
diff --git 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/dictionary/BaseOffHeapMutableDictionary.java
 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/dictionary/BaseOffHeapMutableDictionary.java
index f1b526c1a7..ae50758e42 100644
--- 
a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/dictionary/BaseOffHeapMutableDictionary.java
+++ 
b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/realtime/impl/dictionary/BaseOffHeapMutableDictionary.java
@@ -25,6 +25,7 @@ import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
 import java.util.concurrent.ConcurrentHashMap;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.segment.spi.index.mutable.MutableDictionary;
 import org.apache.pinot.segment.spi.memory.PinotDataBuffer;
 import org.apache.pinot.segment.spi.memory.PinotDataBufferMemoryManager;
@@ -264,7 +265,7 @@ public abstract class BaseOffHeapMutableDictionary 
implements MutableDictionary
       iBuf.put(i, NULL_VALUE_INDEX);
     }
     newList.add(iBuf);
-    Map<Object, Integer> newOverflowMap = new 
ConcurrentHashMap<>(_maxItemsInOverflowHash);
+    Map<Object, Integer> newOverflowMap = new 
ConcurrentHashMap<>(HashUtil.getHashMapCapacity(_maxItemsInOverflowHash));
     if (_maxItemsInOverflowHash > 0) {
       Map<Object, Integer> oldOverflowMap = valueToDictId.getOverflowMap();
       for (Map.Entry<Object, Integer> entry : oldOverflowMap.entrySet()) {
diff --git 
a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/MoveReplicaGroup.java
 
b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/MoveReplicaGroup.java
index 3bb903c8fa..4ece1f5abf 100644
--- 
a/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/MoveReplicaGroup.java
+++ 
b/pinot-tools/src/main/java/org/apache/pinot/tools/admin/command/MoveReplicaGroup.java
@@ -41,6 +41,7 @@ import org.apache.helix.model.IdealState;
 import org.apache.helix.store.zk.ZkHelixPropertyStore;
 import org.apache.helix.zookeeper.datamodel.ZNRecord;
 import org.apache.helix.zookeeper.datamodel.serializer.ZNRecordSerializer;
+import org.apache.pinot.common.utils.HashUtil;
 import org.apache.pinot.common.utils.config.TableConfigUtils;
 import org.apache.pinot.common.utils.helix.HelixHelper;
 import org.apache.pinot.spi.config.table.TableConfig;
@@ -274,7 +275,7 @@ public class MoveReplicaGroup extends 
AbstractBaseAdminCommand implements Comman
   private Map<String, Map<String, String>> copyIdealState(Map<String, 
Map<String, String>> idealStateMap) {
     Map<String, Map<String, String>> copy = new HashMap<>(idealStateMap);
     for (Map.Entry<String, Map<String, String>> segmentEntry : 
idealStateMap.entrySet()) {
-      Map<String, String> instanceCopy = new 
HashMap<>(segmentEntry.getValue().size());
+      Map<String, String> instanceCopy = new 
HashMap<>(HashUtil.getHashMapCapacity(segmentEntry.getValue().size()));
       for (Map.Entry<String, String> instanceEntry : 
segmentEntry.getValue().entrySet()) {
         instanceCopy.put(instanceEntry.getKey(), instanceEntry.getValue());
       }
@@ -313,7 +314,7 @@ public class MoveReplicaGroup extends 
AbstractBaseAdminCommand implements Comman
   private PriorityQueue<ServerInstance> getDestinationServerQueue(Map<String, 
Map<String, String>> idealStateMap,
       List<String> destServers) {
     // better to keep map rather than removing elements from heap each time
-    Map<String, ServerInstance> serverMap = new HashMap<>(destServers.size());
+    Map<String, ServerInstance> serverMap = new 
HashMap<>(HashUtil.getHashMapCapacity(destServers.size()));
     for (String ds : destServers) {
       serverMap.put(ds, new ServerInstance(ds, 0));
     }


---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to