This is an automated email from the ASF dual-hosted git repository.
yashmayya 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 76c2ec25c5d Cleanup segment assignment strategy interface (#17038)
76c2ec25c5d is described below
commit 76c2ec25c5dafaff86b984abc69f41f3dda94a17
Author: Yash Mayya <[email protected]>
AuthorDate: Fri Oct 17 17:58:01 2025 -0700
Cleanup segment assignment strategy interface (#17038)
---
.../assignment/segment/BaseSegmentAssignment.java | 12 +++++-------
.../segment/OfflineSegmentAssignment.java | 11 ++++-------
.../segment/RealtimeSegmentAssignment.java | 8 +++-----
.../AllServersSegmentAssignmentStrategy.java | 17 ++++++-----------
.../BalancedNumSegmentAssignmentStrategy.java | 21 +++++++++------------
.../ReplicaGroupSegmentAssignmentStrategy.java | 11 ++++-------
.../segment/strategy/SegmentAssignmentStrategy.java | 20 +++++++++-----------
.../strategy/SegmentAssignmentStrategyFactory.java | 8 ++------
8 files changed, 42 insertions(+), 66 deletions(-)
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/BaseSegmentAssignment.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/BaseSegmentAssignment.java
index e0872687548..7a6ad7511d6 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/BaseSegmentAssignment.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/BaseSegmentAssignment.java
@@ -33,7 +33,6 @@ import
org.apache.pinot.controller.helix.core.assignment.segment.strategy.Segmen
import
org.apache.pinot.controller.helix.core.assignment.segment.strategy.SegmentAssignmentStrategyFactory;
import org.apache.pinot.segment.local.utils.TableConfigUtils;
import org.apache.pinot.spi.config.table.TableConfig;
-import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType;
import
org.apache.pinot.spi.utils.CommonConstants.Helix.StateModel.SegmentStateModel;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -94,8 +93,7 @@ public abstract class BaseSegmentAssignment implements
SegmentAssignment {
*/
protected Pair<List<Map<String, Map<String, String>>>, Map<String,
Map<String, String>>> rebalanceTiers(
Map<String, Map<String, String>> currentAssignment, @Nullable List<Tier>
sortedTiers,
- @Nullable Map<String, InstancePartitions> tierInstancePartitionsMap,
boolean bootstrap,
- InstancePartitionsType instancePartitionsType) {
+ @Nullable Map<String, InstancePartitions> tierInstancePartitionsMap,
boolean bootstrap) {
if (sortedTiers == null) {
return Pair.of(null, currentAssignment);
}
@@ -129,7 +127,7 @@ public abstract class BaseSegmentAssignment implements
SegmentAssignment {
_logger.info("Rebalancing tier: {} for table: {} with bootstrap: {},
instance partitions: {}", tierName,
_tableNameWithType, bootstrap, tierInstancePartitions);
newTierAssignments.add(reassignSegments(tierName, tierCurrentAssignment,
tierInstancePartitions, bootstrap,
- segmentAssignmentStrategy, instancePartitionsType));
+ segmentAssignmentStrategy));
}
return Pair.of(newTierAssignments,
tierSegmentAssignment.getNonTierSegmentAssignment());
@@ -140,7 +138,7 @@ public abstract class BaseSegmentAssignment implements
SegmentAssignment {
*/
protected Map<String, Map<String, String>> reassignSegments(String
instancePartitionType,
Map<String, Map<String, String>> currentAssignment, InstancePartitions
instancePartitions, boolean bootstrap,
- SegmentAssignmentStrategy segmentAssignmentStrategy,
InstancePartitionsType instancePartitionsType) {
+ SegmentAssignmentStrategy segmentAssignmentStrategy) {
Map<String, Map<String, String>> newAssignment;
if (bootstrap) {
_logger.info("Bootstrapping segment assignment for {} segments of table:
{}", instancePartitionType,
@@ -150,14 +148,14 @@ public abstract class BaseSegmentAssignment implements
SegmentAssignment {
newAssignment = new TreeMap<>();
for (String segment : currentAssignment.keySet()) {
List<String> assignedInstances =
- segmentAssignmentStrategy.assignSegment(segment, newAssignment,
instancePartitions, instancePartitionsType);
+ segmentAssignmentStrategy.assignSegment(segment, newAssignment,
instancePartitions);
newAssignment
.put(segment,
SegmentAssignmentUtils.getInstanceStateMap(assignedInstances,
SegmentStateModel.ONLINE));
}
} else {
// Use segment assignment strategy
newAssignment =
- segmentAssignmentStrategy.reassignSegments(currentAssignment,
instancePartitions, instancePartitionsType);
+ segmentAssignmentStrategy.reassignSegments(currentAssignment,
instancePartitions);
}
return newAssignment;
}
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/OfflineSegmentAssignment.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/OfflineSegmentAssignment.java
index 5e407564f71..0fa88db8c2c 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/OfflineSegmentAssignment.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/OfflineSegmentAssignment.java
@@ -51,8 +51,7 @@ public class OfflineSegmentAssignment extends
BaseSegmentAssignment {
_logger.info("Assigning segment: {} with instance partitions: {} for
table: {}", segmentName, instancePartitions,
_tableNameWithType);
List<String> instancesAssigned =
- segmentAssignmentStrategy.assignSegment(segmentName,
currentAssignment, instancePartitions,
- InstancePartitionsType.OFFLINE);
+ segmentAssignmentStrategy.assignSegment(segmentName,
currentAssignment, instancePartitions);
_logger.info("Assigned segment: {} to instances: {} for table: {}",
segmentName, instancesAssigned,
_tableNameWithType);
return instancesAssigned;
@@ -74,14 +73,12 @@ public class OfflineSegmentAssignment extends
BaseSegmentAssignment {
// tierPartitionMap has single tier for Dim tables and remove below check
// See https://github.com/apache/pinot/issues/9047
if (segmentAssignmentStrategy instanceof
AllServersSegmentAssignmentStrategy) {
- return segmentAssignmentStrategy.reassignSegments(currentAssignment,
offlineInstancePartitions,
- InstancePartitionsType.OFFLINE);
+ return segmentAssignmentStrategy.reassignSegments(currentAssignment,
offlineInstancePartitions);
}
boolean bootstrap = config.isBootstrap();
// Rebalance tiers first
Pair<List<Map<String, Map<String, String>>>, Map<String, Map<String,
String>>> pair =
- rebalanceTiers(currentAssignment, sortedTiers,
tierInstancePartitionsMap, bootstrap,
- InstancePartitionsType.OFFLINE);
+ rebalanceTiers(currentAssignment, sortedTiers,
tierInstancePartitionsMap, bootstrap);
List<Map<String, Map<String, String>>> newTierAssignments = pair.getLeft();
Map<String, Map<String, String>> nonTierAssignment = pair.getRight();
@@ -89,7 +86,7 @@ public class OfflineSegmentAssignment extends
BaseSegmentAssignment {
offlineInstancePartitions, bootstrap);
Map<String, Map<String, String>> newAssignment =
reassignSegments(InstancePartitionsType.OFFLINE.toString(),
nonTierAssignment, offlineInstancePartitions,
- bootstrap, segmentAssignmentStrategy,
InstancePartitionsType.OFFLINE);
+ bootstrap, segmentAssignmentStrategy);
// Add tier assignments, if available
if (CollectionUtils.isNotEmpty(newTierAssignments)) {
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeSegmentAssignment.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeSegmentAssignment.java
index 2b24a1405b2..616dd8b79bd 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeSegmentAssignment.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeSegmentAssignment.java
@@ -96,8 +96,7 @@ public class RealtimeSegmentAssignment extends
BaseSegmentAssignment {
SegmentAssignmentStrategy segmentAssignmentStrategy =
SegmentAssignmentStrategyFactory.getSegmentAssignmentStrategy(_helixManager,
_tableConfig,
instancePartitionsType.toString(), instancePartitions);
- instancesAssigned = segmentAssignmentStrategy.assignSegment(segmentName,
currentAssignment, instancePartitions,
- InstancePartitionsType.COMPLETED);
+ instancesAssigned = segmentAssignmentStrategy.assignSegment(segmentName,
currentAssignment, instancePartitions);
} else {
instancesAssigned = assignConsumingSegment(segmentName,
instancePartitions);
}
@@ -186,8 +185,7 @@ public class RealtimeSegmentAssignment extends
BaseSegmentAssignment {
boolean bootstrap = config.isBootstrap();
// Rebalance tiers first
Pair<List<Map<String, Map<String, String>>>, Map<String, Map<String,
String>>> pair =
- rebalanceTiers(currentAssignment, sortedTiers,
tierInstancePartitionsMap, bootstrap,
- InstancePartitionsType.COMPLETED);
+ rebalanceTiers(currentAssignment, sortedTiers,
tierInstancePartitionsMap, bootstrap);
List<Map<String, Map<String, String>>> newTierAssignments = pair.getLeft();
Map<String, Map<String, String>> nonTierAssignment = pair.getRight();
@@ -220,7 +218,7 @@ public class RealtimeSegmentAssignment extends
BaseSegmentAssignment {
_logger.info("Reassigning COMPLETED segments with COMPLETED instance
partitions for table: {}",
_tableNameWithType);
newAssignment =
reassignSegments(InstancePartitionsType.COMPLETED.toString(),
completedSegmentAssignment,
- completedInstancePartitions, bootstrap, segmentAssignmentStrategy,
InstancePartitionsType.COMPLETED);
+ completedInstancePartitions, bootstrap, segmentAssignmentStrategy);
} else {
// When COMPLETED instance partitions are not provided, reassign
COMPLETED segments the same way as CONSUMING
// segments with CONSUMING instance partitions (ensure COMPLETED
segments are served by the correct instances when
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/AllServersSegmentAssignmentStrategy.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/AllServersSegmentAssignmentStrategy.java
index fee2b7831b7..794cddd40bd 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/AllServersSegmentAssignmentStrategy.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/AllServersSegmentAssignmentStrategy.java
@@ -31,7 +31,6 @@ import org.apache.pinot.common.utils.helix.HelixHelper;
import
org.apache.pinot.controller.helix.core.assignment.segment.SegmentAssignmentUtils;
import org.apache.pinot.spi.config.table.TableConfig;
import org.apache.pinot.spi.config.table.TenantConfig;
-import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType;
import org.apache.pinot.spi.utils.CommonConstants;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -41,13 +40,11 @@ import org.slf4j.LoggerFactory;
* Segment assignment for an offline dimension table.
* <ul>
* <li>
- * <p>This segment assignment strategy is used when {@link
TableConfig#IS_DIM_TABLE_KEY}is
- * set to "true".</p>
+ * This segment assignment strategy is used when {@link
TableConfig#IS_DIM_TABLE_KEY} is set to "true".
* </li>
* <li>
- * <p>For a dimension table we assign the segment to all the hosts. Thus
for this assignment
- * strategy we simply return all the hosts under a given tag as the
assigned hosts for
- * a given segment.</p>
+ * For a dimension table we assign all segments to all the servers. Thus,
for this assignment strategy, we simply
+ * return all the instances under a given tag as the assigned instances
for any given segment.
* </li>
* </ul>
*/
@@ -55,20 +52,18 @@ public class AllServersSegmentAssignmentStrategy implements
SegmentAssignmentStr
private static final Logger LOGGER =
LoggerFactory.getLogger(AllServersSegmentAssignmentStrategy.class);
private HelixManager _helixManager;
- private String _offlineTableName;
private TenantConfig _tenantConfig;
@Override
public void init(HelixManager helixManager, TableConfig tableConfig) {
_helixManager = helixManager;
- _offlineTableName = tableConfig.getTableName();
_tenantConfig = tableConfig.getTenantConfig();
- LOGGER.info("Initialized AllServersSegmentAssignmentStrategy for table:
{}", _offlineTableName);
+ LOGGER.info("Initialized AllServersSegmentAssignmentStrategy for table:
{}", tableConfig.getTableName());
}
@Override
public List<String> assignSegment(String segmentName, Map<String,
Map<String, String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType) {
+ InstancePartitions instancePartitions) {
String serverTag = _tenantConfig.getServer();
Set<String> instances =
HelixHelper.getServerInstancesForTenant(_helixManager, serverTag);
int numInstances = instances.size();
@@ -79,7 +74,7 @@ public class AllServersSegmentAssignmentStrategy implements
SegmentAssignmentStr
@Override
public Map<String, Map<String, String>> reassignSegments(Map<String,
Map<String, String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType) {
+ InstancePartitions instancePartitions) {
String serverTag = _tenantConfig.getServer();
Set<String> instances =
HelixHelper.getServerInstancesForTenant(_helixManager, serverTag);
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/BalancedNumSegmentAssignmentStrategy.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/BalancedNumSegmentAssignmentStrategy.java
index c1270705848..a4411de89b5 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/BalancedNumSegmentAssignmentStrategy.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/BalancedNumSegmentAssignmentStrategy.java
@@ -26,18 +26,15 @@ import
org.apache.pinot.common.assignment.InstancePartitions;
import
org.apache.pinot.controller.helix.core.assignment.segment.SegmentAssignmentUtils;
import org.apache.pinot.spi.config.table.SegmentsValidationAndRetentionConfig;
import org.apache.pinot.spi.config.table.TableConfig;
-import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
/**
- * Balance num Segment assignment strategy class for offline segment assignment
- * <ul>
- * <li>
- * <p>This segment assignment strategy is used when table replication/
num_replica_groups = 1.</p>
- * </li>
- * </ul>
+ * Balanced segment assignment strategy class where segments are distributed
to instances such that each instance has
+ * approximately the same number of segments. This is the default segment
assignment strategy.
+ * <p>
+ * This segment assignment strategy is used when table replication/
num_replica_groups = 1.
*/
public class BalancedNumSegmentAssignmentStrategy implements
SegmentAssignmentStrategy {
private static final Logger LOGGER =
LoggerFactory.getLogger(BalancedNumSegmentAssignmentStrategy.class);
@@ -47,7 +44,7 @@ public class BalancedNumSegmentAssignmentStrategy implements
SegmentAssignmentSt
@Override
public void init(HelixManager helixManager, TableConfig tableConfig) {
SegmentsValidationAndRetentionConfig validationAndRetentionConfig =
tableConfig.getValidationConfig();
- Preconditions.checkState(validationAndRetentionConfig != null, "Validation
Config is null");
+ Preconditions.checkState(validationAndRetentionConfig != null,
"segmentsConfig is null");
_replication = tableConfig.getReplication();
LOGGER.info("Initialized BalancedNumSegmentAssignmentStrategy for table:
{} with replication: {}",
tableConfig.getTableName(), _replication);
@@ -55,14 +52,14 @@ public class BalancedNumSegmentAssignmentStrategy
implements SegmentAssignmentSt
@Override
public List<String> assignSegment(String segmentName, Map<String,
Map<String, String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType) {
+ InstancePartitions instancePartitions) {
validateSegmentAssignmentStrategy(instancePartitions);
return
SegmentAssignmentUtils.assignSegmentWithoutReplicaGroup(currentAssignment,
instancePartitions, _replication);
}
@Override
public Map<String, Map<String, String>> reassignSegments(Map<String,
Map<String, String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType) {
+ InstancePartitions instancePartitions) {
validateSegmentAssignmentStrategy(instancePartitions);
List<String> instances =
SegmentAssignmentUtils.getInstancesForNonReplicaGroupBasedAssignment(instancePartitions,
_replication);
@@ -74,8 +71,8 @@ public class BalancedNumSegmentAssignmentStrategy implements
SegmentAssignmentSt
int numPartitions = instancePartitions.getNumPartitions();
// Non-replica-group based assignment should have numReplicaGroups and
numPartitions = 1
Preconditions.checkState(numReplicaGroups == 1,
- "Replica groups should be 1 in order to use
BalanceNumSegmentAssignmentStrategy");
+ "Number of replica groups should be 1 in order to use
BalancedNumSegmentAssignmentStrategy");
Preconditions.checkState(numPartitions == 1,
- "Replica groups should be 1 in order to use
BalanceNumSegmentAssignmentStrategy");
+ "Number of instance partitions should be 1 in order to use
BalancedNumSegmentAssignmentStrategy");
}
}
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategy.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategy.java
index 81d5061ab4f..c27c0645b08 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategy.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategy.java
@@ -33,7 +33,6 @@ import
org.apache.pinot.controller.helix.core.assignment.segment.SegmentAssignme
import org.apache.pinot.segment.local.utils.TableConfigUtils;
import org.apache.pinot.spi.config.table.SegmentsValidationAndRetentionConfig;
import org.apache.pinot.spi.config.table.TableConfig;
-import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
@@ -45,17 +44,15 @@ class ReplicaGroupSegmentAssignmentStrategy implements
SegmentAssignmentStrategy
private String _tableName;
private String _partitionColumn;
private int _replication;
- private TableConfig _tableConfig;
@Override
public void init(HelixManager helixManager, TableConfig tableConfig) {
_helixManager = helixManager;
- _tableConfig = tableConfig;
_tableName = tableConfig.getTableName();
SegmentsValidationAndRetentionConfig validationAndRetentionConfig =
tableConfig.getValidationConfig();
- Preconditions.checkState(validationAndRetentionConfig != null, "Validation
Config is null");
+ Preconditions.checkState(validationAndRetentionConfig != null,
"segmentsConfig is null");
_replication = tableConfig.getReplication();
- _partitionColumn = TableConfigUtils.getPartitionColumn(_tableConfig);
+ _partitionColumn = TableConfigUtils.getPartitionColumn(tableConfig);
if (_partitionColumn == null) {
LOGGER.info("Initialized ReplicaGroupSegmentAssignmentStrategy "
+ "with replication: {} without partition column for table: {} ",
_replication, _tableName);
@@ -70,7 +67,7 @@ class ReplicaGroupSegmentAssignmentStrategy implements
SegmentAssignmentStrategy
*/
@Override
public List<String> assignSegment(String segmentName, Map<String,
Map<String, String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType) {
+ InstancePartitions instancePartitions) {
checkReplication(instancePartitions, _replication, _tableName);
int numPartitions = instancePartitions.getNumPartitions();
int partitionId;
@@ -86,7 +83,7 @@ class ReplicaGroupSegmentAssignmentStrategy implements
SegmentAssignmentStrategy
@Override
public Map<String, Map<String, String>> reassignSegments(Map<String,
Map<String, String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType) {
+ InstancePartitions instancePartitions) {
Map<String, Map<String, String>> newAssignment;
int numPartitions = instancePartitions.getNumPartitions();
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategy.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategy.java
index 36222dd90dc..8dcdfbc9b18 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategy.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategy.java
@@ -23,7 +23,6 @@ import java.util.Map;
import org.apache.helix.HelixManager;
import org.apache.pinot.common.assignment.InstancePartitions;
import org.apache.pinot.spi.config.table.TableConfig;
-import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType;
/**
@@ -40,9 +39,9 @@ public interface SegmentAssignmentStrategy {
void init(HelixManager helixManager, TableConfig tableConfig);
/**
- * Assigns segment to instances. The assignment strategy will be configured
in
- * OfflineSegmentAssignment and RealtimeSegmentAssignment classes and
depending on type of
- * assignment strategy, this function will be called to assign a new segment
+ * Assigns a segment to instances. The assignment strategy will be
configured in the OfflineSegmentAssignment and
+ * RealtimeSegmentAssignment classes, and depending on the type of
assignment strategy, this method will be called
+ * to assign a new segment.
*
* @param segmentName Name of the segment to be assigned
* @param currentAssignment Current segment assignment of the table (map
from segment name to instance state map)
@@ -50,18 +49,17 @@ public interface SegmentAssignmentStrategy {
* @return List of instances to assign the segment to
*/
List<String> assignSegment(String segmentName, Map<String, Map<String,
String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType);
+ InstancePartitions instancePartitions);
/**
- * Re-assigns segment to instances. The assignment strategy will be
configured in
- * OfflineSegmentAssignment and RealtimeSegmentAssignment classes and
depending on type of
- * assignment strategy, this function will be called to re-assign a segment
- * when the InstancePartitions has been changed.
+ * Re-assigns segments to instances. The assignment strategy will be
configured in the OfflineSegmentAssignment and
+ * RealtimeSegmentAssignment classes, and depending on the type of
assignment strategy, this method will be called
+ * to re-assign segments when the InstancePartitions has been changed.
*
* @param currentAssignment Current segment assignment of the table (map
from segment name to instance state map)
* @param instancePartitions Instance partitions
- * @return Rebalanced assignment for the segments per assignment strategy
+ * @return Rebalanced assignment for the segments as per the assignment
strategy
*/
Map<String, Map<String, String>> reassignSegments(Map<String, Map<String,
String>> currentAssignment,
- InstancePartitions instancePartitions, InstancePartitionsType
instancePartitionsType);
+ InstancePartitions instancePartitions);
}
diff --git
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactory.java
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactory.java
index 33243271bb2..5025f7b9707 100644
---
a/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactory.java
+++
b/pinot-controller/src/main/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactory.java
@@ -26,8 +26,6 @@ import org.apache.pinot.spi.config.table.TableConfig;
import org.apache.pinot.spi.config.table.TableType;
import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig;
import org.apache.pinot.spi.utils.CommonConstants.Segment.AssignmentStrategy;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
/**
@@ -35,8 +33,6 @@ import org.slf4j.LoggerFactory;
*/
public class SegmentAssignmentStrategyFactory {
- private static final Logger LOGGER =
LoggerFactory.getLogger(SegmentAssignmentStrategyFactory.class);
-
private SegmentAssignmentStrategyFactory() {
}
@@ -64,9 +60,9 @@ public class SegmentAssignmentStrategyFactory {
// Try to determine segment assignment strategy from table config
if (segmentAssignmentConfigMap != null) {
SegmentAssignmentConfig segmentAssignmentConfig;
- // Use the pre defined segment assignment strategy
+ // Use the pre-defined segment assignment strategy
segmentAssignmentConfig =
segmentAssignmentConfigMap.get(assignmentType.toUpperCase());
- // Segment assignment config is only applicable to offline tables and
completed segments of real time tables
+ // Segment assignment config is only applicable to offline tables and
completed segments of realtime tables
if (segmentAssignmentConfig != null) {
assignmentStrategy =
segmentAssignmentConfig.getAssignmentStrategy().toLowerCase();
}
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]