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]