diff --git a/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-1.json b/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-1.json index 381e6885d19a..44d499ffef63 100644 --- a/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-1.json +++ b/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-1.json @@ -19,7 +19,6 @@ "replication": "1", "retentionTimeUnit": "", "retentionTimeValue": "", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "REFRESH", "timeColumnName": "HoursSinceEpoch", diff --git a/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-2-realtime.json b/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-2-realtime.json index 4ef023e6b58d..1a3980d19dc3 100644 --- a/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-2-realtime.json +++ b/compatibility-verifier/multi-stage-query-engine-test-suite/config/feature-test-2-realtime.json @@ -20,7 +20,6 @@ "replication": "1", "retentionTimeUnit": "", "retentionTimeValue": "", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "APPEND", "timeColumnName": "HoursSinceEpoch", diff --git a/compatibility-verifier/sample-test-suite/config/feature-test-1.json b/compatibility-verifier/sample-test-suite/config/feature-test-1.json index 381e6885d19a..44d499ffef63 100644 --- a/compatibility-verifier/sample-test-suite/config/feature-test-1.json +++ b/compatibility-verifier/sample-test-suite/config/feature-test-1.json @@ -19,7 +19,6 @@ "replication": "1", "retentionTimeUnit": "", "retentionTimeValue": "", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "REFRESH", "timeColumnName": "HoursSinceEpoch", diff --git a/compatibility-verifier/sample-test-suite/config/feature-test-2-realtime.json b/compatibility-verifier/sample-test-suite/config/feature-test-2-realtime.json index 4ef023e6b58d..1a3980d19dc3 100644 --- a/compatibility-verifier/sample-test-suite/config/feature-test-2-realtime.json +++ b/compatibility-verifier/sample-test-suite/config/feature-test-2-realtime.json @@ -20,7 +20,6 @@ "replication": "1", "retentionTimeUnit": "", "retentionTimeValue": "", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "APPEND", "timeColumnName": "HoursSinceEpoch", diff --git a/compatibility-verifier/sample-test-suite/config/feature-test-3-realtime.json b/compatibility-verifier/sample-test-suite/config/feature-test-3-realtime.json index 31864393acf3..59a59116ef9e 100644 --- a/compatibility-verifier/sample-test-suite/config/feature-test-3-realtime.json +++ b/compatibility-verifier/sample-test-suite/config/feature-test-3-realtime.json @@ -42,7 +42,6 @@ "replication": "1", "retentionTimeUnit": "", "retentionTimeValue": "", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "APPEND", "timeColumnName": "HoursSinceEpoch", diff --git a/docker/images/pinot/examples/docker/table-configs/airlineStats_realtime_table_config.json b/docker/images/pinot/examples/docker/table-configs/airlineStats_realtime_table_config.json index 48fc7f0f8c83..d4177f60d013 100644 --- a/docker/images/pinot/examples/docker/table-configs/airlineStats_realtime_table_config.json +++ b/docker/images/pinot/examples/docker/table-configs/airlineStats_realtime_table_config.json @@ -7,7 +7,6 @@ "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1", "replicasPerPartition": "1" }, diff --git a/docker/images/pinot/examples/docker/table-configs/meetupRsvp_realtime_table_config.json b/docker/images/pinot/examples/docker/table-configs/meetupRsvp_realtime_table_config.json index ff31b0a46680..717ceabd387e 100644 --- a/docker/images/pinot/examples/docker/table-configs/meetupRsvp_realtime_table_config.json +++ b/docker/images/pinot/examples/docker/table-configs/meetupRsvp_realtime_table_config.json @@ -5,7 +5,6 @@ "timeColumnName": "mtime", "timeType": "MILLISECONDS", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1", "replicasPerPartition": "1" }, diff --git a/helm/pinot/pinot-realtime-quickstart.yml b/helm/pinot/pinot-realtime-quickstart.yml index d2bb95b94bf9..5b2e24bfd295 100644 --- a/helm/pinot/pinot-realtime-quickstart.yml +++ b/helm/pinot/pinot-realtime-quickstart.yml @@ -33,7 +33,6 @@ data: "retentionTimeUnit": "DAYS", "retentionTimeValue": "3650", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1", "replicasPerPartition": "1" }, @@ -68,7 +67,6 @@ data: "retentionTimeUnit": "DAYS", "retentionTimeValue": "3650", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1", "replicasPerPartition": "1" }, diff --git a/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstanceAssignmentConfigUtils.java b/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstanceAssignmentConfigUtils.java index f580391e51da..d798c5b2b8bc 100644 --- a/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstanceAssignmentConfigUtils.java +++ b/pinot-common/src/main/java/org/apache/pinot/common/assignment/InstanceAssignmentConfigUtils.java @@ -31,6 +31,7 @@ import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; import org.apache.pinot.spi.config.table.assignment.InstanceReplicaGroupPartitionConfig; import org.apache.pinot.spi.config.table.assignment.InstanceTagPoolConfig; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.utils.CommonConstants.Segment.AssignmentStrategy; @@ -65,10 +66,17 @@ public static boolean allowInstanceAssignment(TableConfig tableConfig, // Allow OFFLINE instance assignment if the offline table has it configured or (for backward-compatibility) is // using replica-group segment assignment case OFFLINE: + Map segmentAssignmentConfigMap = tableConfig.getSegmentAssignmentConfigMap(); + boolean isSetReplicaGroupAssignmentStrategy = false; + if (segmentAssignmentConfigMap != null + && segmentAssignmentConfigMap.get(instancePartitionsType.toString()) != null) { + isSetReplicaGroupAssignmentStrategy = + AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY.equalsIgnoreCase( + segmentAssignmentConfigMap.get(instancePartitionsType.toString()).getAssignmentStrategy()); + } return tableType == TableType.OFFLINE && ((instanceAssignmentConfigMap != null && instanceAssignmentConfigMap.get(InstancePartitionsType.OFFLINE.toString()) != null) - || AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY - .equalsIgnoreCase(tableConfig.getValidationConfig().getSegmentAssignmentStrategy())); + || isSetReplicaGroupAssignmentStrategy); // Allow CONSUMING/COMPLETED instance assignment if the real-time table has it configured case CONSUMING: case COMPLETED: diff --git a/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeUtilsTest.java b/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeUtilsTest.java index 84767c99201f..796f26b02db3 100644 --- a/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeUtilsTest.java +++ b/pinot-common/src/test/java/org/apache/pinot/common/utils/config/TableConfigSerDeUtilsTest.java @@ -48,6 +48,7 @@ import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; import org.apache.pinot.spi.config.table.assignment.InstanceReplicaGroupPartitionConfig; import org.apache.pinot.spi.config.table.assignment.InstanceTagPoolConfig; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.config.table.ingestion.AggregationConfig; import org.apache.pinot.spi.config.table.ingestion.BatchIngestionConfig; import org.apache.pinot.spi.config.table.ingestion.ComplexTypeConfig; @@ -146,7 +147,9 @@ public void testSerDe() { // With SegmentAssignmentStrategyConfig ReplicaGroupStrategyConfig replicaGroupStrategyConfig = new ReplicaGroupStrategyConfig("memberId", 5); - TableConfig tableConfig = tableConfigBuilder.setSegmentAssignmentStrategy("ReplicaGroupSegmentAssignmentStrategy") + TableConfig tableConfig = tableConfigBuilder.setSegmentAssignmentConfigMap( + Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig("ReplicaGroupSegmentAssignmentStrategy"))) .setReplicaGroupStrategyConfig(replicaGroupStrategyConfig) .build(); @@ -439,7 +442,12 @@ private void checkTenantConfigWithTagOverride(TableConfig tableConfig) { private void checkSegmentAssignmentStrategyConfig(TableConfig tableConfig) { SegmentsValidationAndRetentionConfig validationConfig = tableConfig.getValidationConfig(); - assertEquals(validationConfig.getSegmentAssignmentStrategy(), "ReplicaGroupSegmentAssignmentStrategy"); + Map segmentAssignmentConfigMap = tableConfig.getSegmentAssignmentConfigMap(); + assertNotNull(segmentAssignmentConfigMap); + SegmentAssignmentConfig segmentAssignmentConfig = + segmentAssignmentConfigMap.get(InstancePartitionsType.OFFLINE.toString()); + assertNotNull(segmentAssignmentConfig); + assertEquals(segmentAssignmentConfig.getAssignmentStrategy(), "ReplicaGroupSegmentAssignmentStrategy"); ReplicaGroupStrategyConfig replicaGroupStrategyConfig = validationConfig.getReplicaGroupStrategyConfig(); assertNotNull(replicaGroupStrategyConfig); assertEquals(replicaGroupStrategyConfig.getPartitionColumn(), "memberId"); diff --git a/pinot-connectors/pinot-flink-connector/src/test/resources/fixtures/pinotTableConfigLowLevel.json b/pinot-connectors/pinot-flink-connector/src/test/resources/fixtures/pinotTableConfigLowLevel.json index adaed3d9f216..a854f651b0da 100644 --- a/pinot-connectors/pinot-flink-connector/src/test/resources/fixtures/pinotTableConfigLowLevel.json +++ b/pinot-connectors/pinot-flink-connector/src/test/resources/fixtures/pinotTableConfigLowLevel.json @@ -8,7 +8,6 @@ "segmentPushType" : "APPEND", "replication" : "2", "timeColumnName" : "timestamp", - "segmentAssignmentStrategy" : "BalanceNumSegmentAssignmentStrategy", "replicaGroupStrategyConfig" : null, "hllConfig" : null, "replicasPerPartition" : 2, diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java index 1301fdd5116b..5a89afdad568 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/api/PinotFileUploadTest.java @@ -45,7 +45,7 @@ public void setUp() TEST_INSTANCE.addDummySchema(TABLE_NAME); // Adding table TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) - .setSegmentAssignmentStrategy("RandomAssignmentStrategy").setNumReplicas(2).build(); + .setNumReplicas(2).build(); TEST_INSTANCE.getHelixResourceManager().addTable(tableConfig); } diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/instance/InstanceAssignmentTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/instance/InstanceAssignmentTest.java index e1d76e916a3c..052d4f2f5531 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/instance/InstanceAssignmentTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/instance/InstanceAssignmentTest.java @@ -47,6 +47,7 @@ import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; import org.apache.pinot.spi.config.table.assignment.InstanceReplicaGroupPartitionConfig; import org.apache.pinot.spi.config.table.assignment.InstanceTagPoolConfig; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.stream.StreamMetadataProvider; import org.apache.pinot.spi.utils.CommonConstants.Segment.AssignmentStrategy; import org.apache.pinot.spi.utils.Enablement; @@ -75,7 +76,8 @@ public void testDefaultOfflineReplicaGroup() { TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME).setServerTenant(TENANT_NAME) .setNumReplicas(numReplicas) - .setSegmentAssignmentStrategy(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY).build(); + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY))).build(); int numInstancesPerPartition = 2; tableConfig.getValidationConfig() .setReplicaGroupStrategyConfig(new ReplicaGroupStrategyConfig(null, numInstancesPerPartition)); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeReplicaGroupSegmentAssignmentTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeReplicaGroupSegmentAssignmentTest.java index 8740ae6e123b..6cc9640fdb25 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeReplicaGroupSegmentAssignmentTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/RealtimeReplicaGroupSegmentAssignmentTest.java @@ -35,6 +35,7 @@ import org.apache.pinot.spi.config.table.TableConfig; import org.apache.pinot.spi.config.table.TableType; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.utils.CommonConstants.Helix.StateModel.SegmentStateModel; import org.apache.pinot.spi.utils.CommonConstants.Segment.AssignmentStrategy; import org.apache.pinot.spi.utils.builder.TableConfigBuilder; @@ -86,7 +87,8 @@ public void setUp() { TableConfig tableConfig = new TableConfigBuilder(TableType.REALTIME).setTableName(RAW_TABLE_NAME).setNumReplicas(NUM_REPLICAS) .setStreamConfigs(streamConfigs) - .setSegmentAssignmentStrategy(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY) + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.COMPLETED.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY))) .setReplicaGroupStrategyConfig(new ReplicaGroupStrategyConfig(PARTITION_COLUMN, 1)).build(); _segmentAssignment = SegmentAssignmentFactory.getSegmentAssignment(createHelixManager(), tableConfig, null); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/StrictRealtimeSegmentAssignmentTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/StrictRealtimeSegmentAssignmentTest.java index 4a29c2431848..8a6792d0db97 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/StrictRealtimeSegmentAssignmentTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/StrictRealtimeSegmentAssignmentTest.java @@ -46,6 +46,7 @@ import org.apache.pinot.spi.config.table.TableType; import org.apache.pinot.spi.config.table.UpsertConfig; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.utils.CommonConstants.Helix.StateModel.SegmentStateModel; import org.apache.pinot.spi.utils.CommonConstants.Segment.AssignmentStrategy; import org.apache.pinot.spi.utils.builder.TableConfigBuilder; @@ -135,7 +136,8 @@ private static SegmentAssignment createSegmentAssignment(String tableType) { TableConfigBuilder builder = new TableConfigBuilder(TableType.REALTIME).setTableName(RAW_TABLE_NAME) .setNumReplicas(NUM_REPLICAS) .setStreamConfigs(FakeStreamConfigUtils.getDefaultLowLevelStreamConfigs().getStreamConfigsMap()) - .setSegmentAssignmentStrategy(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY) + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.COMPLETED.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY))) .setReplicaGroupStrategyConfig(new ReplicaGroupStrategyConfig(PARTITION_COLUMN, 1)); TableConfig tableConfig; if ("upsert".equalsIgnoreCase(tableType)) { diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategyTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategyTest.java index 877b462084ad..321b84d8b785 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategyTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/ReplicaGroupSegmentAssignmentStrategyTest.java @@ -42,6 +42,7 @@ import org.apache.pinot.spi.config.table.TableConfig; import org.apache.pinot.spi.config.table.TableType; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.utils.CommonConstants.Helix.StateModel.SegmentStateModel; import org.apache.pinot.spi.utils.CommonConstants.Segment.AssignmentStrategy; import org.apache.pinot.spi.utils.builder.TableConfigBuilder; @@ -90,7 +91,8 @@ public void setUp() { TableConfig tableConfigWithoutPartitions = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME_WITHOUT_PARTITION) .setNumReplicas(NUM_REPLICAS) - .setSegmentAssignmentStrategy(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY).build(); + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY))).build(); _segmentAssignmentWithoutPartition = SegmentAssignmentFactory.getSegmentAssignment(null, tableConfigWithoutPartitions, null); @@ -140,7 +142,8 @@ public void setUp() { TableConfig tableConfigWithPartitions = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME_WITH_PARTITION) .setNumReplicas(NUM_REPLICAS) - .setSegmentAssignmentStrategy(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY) + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY))) .setReplicaGroupStrategyConfig(replicaGroupStrategyConfig).build(); _segmentAssignmentWithPartition = SegmentAssignmentFactory.getSegmentAssignment(helixManagerWithPartitions, tableConfigWithPartitions, null); @@ -398,7 +401,8 @@ public void testOneReplicaWithPartition() { new ReplicaGroupStrategyConfig(PARTITION_COLUMN, numInstancesPerPartition); TableConfig tableConfigWithPartitions = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME_WITH_PARTITION).setNumReplicas(1) - .setSegmentAssignmentStrategy(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY).build(); + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.REPLICA_GROUP_SEGMENT_ASSIGNMENT_STRATEGY))).build(); tableConfigWithPartitions.getValidationConfig().setReplicaGroupStrategyConfig(replicaGroupStrategyConfig); SegmentAssignment segmentAssignment = SegmentAssignmentFactory.getSegmentAssignment(helixManager, tableConfigWithPartitions, null); diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactoryTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactoryTest.java index e452820c9888..fc73029411db 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactoryTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/helix/core/assignment/segment/strategy/SegmentAssignmentStrategyFactoryTest.java @@ -119,8 +119,11 @@ public void testReplicaGroupSegmentAssignmentStrategyForBackwardCompatibility() int numInstancesPerPartition = numInstancesPerReplicaGroup / NUM_REPLICAS; ReplicaGroupStrategyConfig replicaGroupStrategyConfig = new ReplicaGroupStrategyConfig(PARTITION_COLUMN, numInstancesPerPartition); + Map segmentAssignmentConfigMap = new HashMap<>(); + segmentAssignmentConfigMap.put(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig("ReplicaGroup")); TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(RAW_TABLE_NAME_WITH_PARTITION) - .setNumReplicas(NUM_REPLICAS).setSegmentAssignmentStrategy("ReplicaGroup") + .setNumReplicas(NUM_REPLICAS).setSegmentAssignmentConfigMap(segmentAssignmentConfigMap) .setReplicaGroupStrategyConfig(replicaGroupStrategyConfig).build(); // { diff --git a/pinot-controller/src/test/java/org/apache/pinot/controller/workload/PropagationUtilsTest.java b/pinot-controller/src/test/java/org/apache/pinot/controller/workload/PropagationUtilsTest.java index 6313a9079fbe..f3952a7c8756 100644 --- a/pinot-controller/src/test/java/org/apache/pinot/controller/workload/PropagationUtilsTest.java +++ b/pinot-controller/src/test/java/org/apache/pinot/controller/workload/PropagationUtilsTest.java @@ -194,7 +194,6 @@ public void getQueryWorkloadConfigsForTagsTest() { public TableConfig createTableConfig(String tableName, String serverTag, String brokerTenant, TableType type) { return new TableConfigBuilder(type) .setTableName(tableName) - .setSegmentAssignmentStrategy("BalanceNumSegmentAssignmentStrategy") .setNumReplicas(1) .setBrokerTenant(brokerTenant) .setServerTenant(serverTag) diff --git a/pinot-controller/src/test/resources/memory_estimation/table-config-for-upsert.json b/pinot-controller/src/test/resources/memory_estimation/table-config-for-upsert.json index 9890a1cb36e5..21e474677b39 100644 --- a/pinot-controller/src/test/resources/memory_estimation/table-config-for-upsert.json +++ b/pinot-controller/src/test/resources/memory_estimation/table-config-for-upsert.json @@ -13,7 +13,6 @@ "replication": "3", "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "APPEND", "timeColumnName": "colTime", diff --git a/pinot-controller/src/test/resources/memory_estimation/table-config.json b/pinot-controller/src/test/resources/memory_estimation/table-config.json index c4f1de0011f1..887456de214d 100644 --- a/pinot-controller/src/test/resources/memory_estimation/table-config.json +++ b/pinot-controller/src/test/resources/memory_estimation/table-config.json @@ -9,7 +9,6 @@ "replication": "3", "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "segmentPushFrequency": "daily", "segmentPushType": "APPEND", "timeColumnName": "colTime", diff --git a/pinot-core/src/test/resources/data/test_crc_complex_table.json b/pinot-core/src/test/resources/data/test_crc_complex_table.json index 1e9f96ca24e9..aa79e60ce629 100644 --- a/pinot-core/src/test/resources/data/test_crc_complex_table.json +++ b/pinot-core/src/test/resources/data/test_crc_complex_table.json @@ -77,7 +77,6 @@ "routing": {}, "segmentsConfig": { "timeColumn": "eventTime", - "replication": 1, - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy" + "replication": 1 } } \ No newline at end of file diff --git a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineIntegrationTest.java b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineIntegrationTest.java index 21438094c690..34bc3ef93bc9 100644 --- a/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineIntegrationTest.java +++ b/pinot-integration-tests/src/test/java/org/apache/pinot/integration/tests/MultiStageEngineIntegrationTest.java @@ -1994,7 +1994,6 @@ public void testValidateQueryApiWithStaticTable() .setRetentionTimeUnit("DAYS") .setRetentionTimeValue("5000") .setDeletedSegmentsRetentionPeriod("7d") - .setSegmentAssignmentStrategy("BalanceNumSegmentAssignmentStrategy") .setNumReplicas(1) .setSegmentPushType("APPEND") .setBrokerTenant("DefaultTenant") diff --git a/pinot-integration-tests/src/test/resources/chaos-monkey-create-table.json b/pinot-integration-tests/src/test/resources/chaos-monkey-create-table.json index 3df214a4a7af..e4bdf46e9611 100644 --- a/pinot-integration-tests/src/test/resources/chaos-monkey-create-table.json +++ b/pinot-integration-tests/src/test/resources/chaos-monkey-create-table.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "3" }, "tenants": { diff --git a/pinot-integration-tests/src/test/resources/simpleMeetup_realtime_table_config.json b/pinot-integration-tests/src/test/resources/simpleMeetup_realtime_table_config.json index 903ef5d4fd10..838df06bb518 100644 --- a/pinot-integration-tests/src/test/resources/simpleMeetup_realtime_table_config.json +++ b/pinot-integration-tests/src/test/resources/simpleMeetup_realtime_table_config.json @@ -5,7 +5,6 @@ "timeColumnName": "mtime", "timeType": "MILLISECONDS", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replicasPerPartition": "1", "replicaGroupStrategyConfig": { "partitionColumn": "event_id", diff --git a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java index 76147e49b5b5..31bea7e4a708 100644 --- a/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java +++ b/pinot-segment-local/src/main/java/org/apache/pinot/segment/local/utils/TableConfigUtils.java @@ -82,6 +82,7 @@ import org.apache.pinot.spi.config.table.UpsertConfig; import org.apache.pinot.spi.config.table.assignment.InstanceAssignmentConfig; import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.config.table.ingestion.AggregationConfig; import org.apache.pinot.spi.config.table.ingestion.BatchIngestionConfig; import org.apache.pinot.spi.config.table.ingestion.ComplexTypeConfig; @@ -179,6 +180,7 @@ public static void validate(TableConfig tableConfig, Schema schema, @Nullable St } validateValidationConfig(tableConfig, schema); + validateSegmentAssignmentConfig(tableConfig); validateIngestionConfig(tableConfig, schema); if (tableConfig.getTableType() == TableType.REALTIME) { validateStreamConfigMaps(tableConfig); @@ -372,16 +374,6 @@ private static void validateValidationConfig(TableConfig tableConfig, Schema sch "Dimension table must be of OFFLINE table type."); Preconditions.checkState(CollectionUtils.isNotEmpty(schema.getPrimaryKeyColumns()), "Dimension table must have primary key[s]"); - - String segmentAssignmentStrategy = validationConfig.getSegmentAssignmentStrategy(); - if (segmentAssignmentStrategy != null - && !segmentAssignmentStrategy.equalsIgnoreCase(AssignmentStrategy.DIM_TABLE_SEGMENT_ASSIGNMENT_STRATEGY)) { - throw new IllegalStateException( - String.format("Dimension table: %s can only use '%s' segment assignment strategy, found: %s", - tableConfig.getTableName(), - CommonConstants.Segment.AssignmentStrategy.DIM_TABLE_SEGMENT_ASSIGNMENT_STRATEGY, - segmentAssignmentStrategy)); - } } String peerSegmentDownloadScheme = validationConfig.getPeerSegmentDownloadScheme(); @@ -399,6 +391,29 @@ private static void validateValidationConfig(TableConfig tableConfig, Schema sch validateRetentionConfig(tableConfig); } + private static void validateSegmentAssignmentConfig(TableConfig tableConfig) { + Map segmentAssignmentConfigMap = tableConfig.getSegmentAssignmentConfigMap(); + if (segmentAssignmentConfigMap == null) { + return; + } + if (tableConfig.isDimTable()) { + SegmentAssignmentConfig segmentAssignmentConfig = + segmentAssignmentConfigMap.get(InstancePartitionsType.OFFLINE.toString()); + if (segmentAssignmentConfig == null) { + return; + } + String segmentAssignmentStrategy = segmentAssignmentConfig.getAssignmentStrategy(); + if (segmentAssignmentStrategy != null + && !segmentAssignmentStrategy.equalsIgnoreCase(AssignmentStrategy.DIM_TABLE_SEGMENT_ASSIGNMENT_STRATEGY)) { + throw new IllegalStateException( + String.format("Dimension table: %s can only use '%s' segment assignment strategy, found: %s", + tableConfig.getTableName(), + CommonConstants.Segment.AssignmentStrategy.DIM_TABLE_SEGMENT_ASSIGNMENT_STRATEGY, + segmentAssignmentStrategy)); + } + } + } + private static boolean isValidPeerDownloadScheme(String peerSegmentDownloadScheme) { return CommonConstants.HTTP_PROTOCOL.equalsIgnoreCase(peerSegmentDownloadScheme) || CommonConstants.HTTPS_PROTOCOL.equalsIgnoreCase(peerSegmentDownloadScheme); diff --git a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java index 14674fb88a18..4ddde893b71b 100644 --- a/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java +++ b/pinot-segment-local/src/test/java/org/apache/pinot/segment/local/utils/TableConfigUtilsTest.java @@ -57,6 +57,7 @@ import org.apache.pinot.spi.config.table.assignment.InstancePartitionsType; import org.apache.pinot.spi.config.table.assignment.InstanceReplicaGroupPartitionConfig; import org.apache.pinot.spi.config.table.assignment.InstanceTagPoolConfig; +import org.apache.pinot.spi.config.table.assignment.SegmentAssignmentConfig; import org.apache.pinot.spi.config.table.ingestion.AggregationConfig; import org.apache.pinot.spi.config.table.ingestion.BatchIngestionConfig; import org.apache.pinot.spi.config.table.ingestion.ComplexTypeConfig; @@ -290,14 +291,16 @@ public void validateDimensionTableSegmentAssignmentStrategy() { // Valid: allservers strategy using constant tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) .setIsDimTable(true) - .setSegmentAssignmentStrategy(AssignmentStrategy.DIM_TABLE_SEGMENT_ASSIGNMENT_STRATEGY) + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig(AssignmentStrategy.DIM_TABLE_SEGMENT_ASSIGNMENT_STRATEGY))) .build(); TableConfigUtils.validate(tableConfig, schema); // Invalid: other strategy tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(TABLE_NAME) .setIsDimTable(true) - .setSegmentAssignmentStrategy("replicaGroup") + .setSegmentAssignmentConfigMap(Collections.singletonMap(InstancePartitionsType.OFFLINE.toString(), + new SegmentAssignmentConfig("replicaGroup"))) .build(); try { TableConfigUtils.validate(tableConfig, schema); diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/SegmentsValidationAndRetentionConfig.java b/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/SegmentsValidationAndRetentionConfig.java index 8a38e63df8a2..e51466bbf123 100644 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/SegmentsValidationAndRetentionConfig.java +++ b/pinot-spi/src/main/java/org/apache/pinot/spi/config/table/SegmentsValidationAndRetentionConfig.java @@ -43,8 +43,6 @@ public class SegmentsValidationAndRetentionConfig extends BaseJsonConfig { private String _timeColumnName; private TimeUnit _timeType; @Deprecated // Use SegmentAssignmentConfig instead - private String _segmentAssignmentStrategy; - @Deprecated // Use SegmentAssignmentConfig instead private ReplicaGroupStrategyConfig _replicaGroupStrategyConfig; private CompletionConfig _completionConfig; private String _crypterClassName; @@ -59,19 +57,6 @@ public class SegmentsValidationAndRetentionConfig extends BaseJsonConfig { private String _untrackedSegmentsRetentionTimeUnit; private String _untrackedSegmentsRetentionTimeValue; - /** - * @deprecated Use {@link InstanceAssignmentConfig} instead - */ - @Deprecated - public String getSegmentAssignmentStrategy() { - return _segmentAssignmentStrategy; - } - - @Deprecated - public void setSegmentAssignmentStrategy(String segmentAssignmentStrategy) { - _segmentAssignmentStrategy = segmentAssignmentStrategy; - } - public String getTimeColumnName() { return _timeColumnName; } diff --git a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java index 175b7393efd4..3b316d337396 100644 --- a/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java +++ b/pinot-spi/src/main/java/org/apache/pinot/spi/utils/builder/TableConfigBuilder.java @@ -82,8 +82,6 @@ public class TableConfigBuilder { // TODO: Remove 'DEFAULT_SEGMENT_PUSH_TYPE' in the future major release. @Deprecated private String _segmentPushType = DEFAULT_SEGMENT_PUSH_TYPE; - @Deprecated - private String _segmentAssignmentStrategy; private String _peerSegmentDownloadScheme; @Deprecated private ReplicaGroupStrategyConfig _replicaGroupStrategyConfig; @@ -239,11 +237,6 @@ public TableConfigBuilder setSegmentPushFrequency(String segmentPushFrequency) { return this; } - public TableConfigBuilder setSegmentAssignmentStrategy(String segmentAssignmentStrategy) { - _segmentAssignmentStrategy = segmentAssignmentStrategy; - return this; - } - public TableConfigBuilder setReplicaGroupStrategyConfig(ReplicaGroupStrategyConfig replicaGroupStrategyConfig) { _replicaGroupStrategyConfig = replicaGroupStrategyConfig; return this; @@ -526,7 +519,6 @@ public TableConfig build() { validationConfig.setLineageEntryCleanupRetentionPeriod(_lineageEntryCleanupRetentionPeriod); validationConfig.setSegmentPushFrequency(_segmentPushFrequency); validationConfig.setSegmentPushType(_segmentPushType); - validationConfig.setSegmentAssignmentStrategy(_segmentAssignmentStrategy); validationConfig.setReplicaGroupStrategyConfig(_replicaGroupStrategyConfig); validationConfig.setCompletionConfig(_completionConfig); validationConfig.setReplication(_numReplicas); diff --git a/pinot-tools/src/main/java/org/apache/pinot/tools/perf/PerfBenchmarkDriver.java b/pinot-tools/src/main/java/org/apache/pinot/tools/perf/PerfBenchmarkDriver.java index c6f93bda71a3..0ef2f1a10e7c 100644 --- a/pinot-tools/src/main/java/org/apache/pinot/tools/perf/PerfBenchmarkDriver.java +++ b/pinot-tools/src/main/java/org/apache/pinot/tools/perf/PerfBenchmarkDriver.java @@ -93,7 +93,6 @@ public class PerfBenchmarkDriver { // TODO: read from configuration. private final int _numReplicas = 1; - private final String _segmentAssignmentStrategy = "BalanceNumSegmentAssignmentStrategy"; private final String _brokerTenantName = "DefaultTenant"; private final String _serverTenantName = "DefaultTenant"; @@ -345,7 +344,7 @@ public void configureTable(String tableName) public void configureTable(String tableName, List invertedIndexColumns, List bloomFilterColumns) throws Exception { TableConfig tableConfig = new TableConfigBuilder(TableType.OFFLINE).setTableName(tableName) - .setSegmentAssignmentStrategy(_segmentAssignmentStrategy).setNumReplicas(_numReplicas) + .setNumReplicas(_numReplicas) .setBrokerTenant(_brokerTenantName).setServerTenant(_serverTenantName).setLoadMode(_loadMode) .setSegmentVersion(_segmentFormatVersion).setInvertedIndexColumns(invertedIndexColumns) .setBloomFilterColumns(bloomFilterColumns).build(); diff --git a/pinot-tools/src/main/resources/conf/sample_offline_table_config.json b/pinot-tools/src/main/resources/conf/sample_offline_table_config.json index 70d405a95f11..d6c486d0040d 100644 --- a/pinot-tools/src/main/resources/conf/sample_offline_table_config.json +++ b/pinot-tools/src/main/resources/conf/sample_offline_table_config.json @@ -7,7 +7,6 @@ "retentionTimeUnit": "DAYS", "retentionTimeValue": "365", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "3" }, "tenants": { diff --git a/pinot-tools/src/main/resources/conf/sample_realtime_table_config.json b/pinot-tools/src/main/resources/conf/sample_realtime_table_config.json index af9cb7d107c2..3487b8a035e6 100644 --- a/pinot-tools/src/main/resources/conf/sample_realtime_table_config.json +++ b/pinot-tools/src/main/resources/conf/sample_realtime_table_config.json @@ -7,7 +7,6 @@ "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "3", "replicasPerPartition": "1" }, diff --git a/pinot-tools/src/main/resources/examples/batch/airlineStats/airlineStats_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/airlineStats/airlineStats_offline_table_config.json index 80e59c594936..b541a059e25f 100644 --- a/pinot-tools/src/main/resources/examples/batch/airlineStats/airlineStats_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/airlineStats/airlineStats_offline_table_config.json @@ -5,7 +5,6 @@ "timeColumnName": "DaysSinceEpoch", "timeType": "DAYS", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": {}, diff --git a/pinot-tools/src/main/resources/examples/batch/baseballStats/baseballStats_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/baseballStats/baseballStats_offline_table_config.json index 3028ef75dc2b..add290e3c7de 100644 --- a/pinot-tools/src/main/resources/examples/batch/baseballStats/baseballStats_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/baseballStats/baseballStats_offline_table_config.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/batch/fineFoodReviews/fineFoodReviews_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/fineFoodReviews/fineFoodReviews_offline_table_config.json index 07fd7b5e6e8e..2cc5c5a8fd3b 100644 --- a/pinot-tools/src/main/resources/examples/batch/fineFoodReviews/fineFoodReviews_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/fineFoodReviews/fineFoodReviews_offline_table_config.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/batch/orders/ordersAPAC/ordersAPAC_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/orders/ordersAPAC/ordersAPAC_offline_table_config.json index b711094475c7..38322fdb3d87 100644 --- a/pinot-tools/src/main/resources/examples/batch/orders/ordersAPAC/ordersAPAC_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/orders/ordersAPAC/ordersAPAC_offline_table_config.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/batch/orders/ordersEU/ordersEU_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/orders/ordersEU/ordersEU_offline_table_config.json index 0ac4b6f87b54..b19ab72e452b 100644 --- a/pinot-tools/src/main/resources/examples/batch/orders/ordersEU/ordersEU_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/orders/ordersEU/ordersEU_offline_table_config.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/batch/orders/ordersUS/ordersUS_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/orders/ordersUS/ordersUS_offline_table_config.json index 8e1a60c78719..dc5dbf9c6696 100644 --- a/pinot-tools/src/main/resources/examples/batch/orders/ordersUS/ordersUS_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/orders/ordersUS/ordersUS_offline_table_config.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/batch/starbucksStores/starbucksStores_offline_table_config.json b/pinot-tools/src/main/resources/examples/batch/starbucksStores/starbucksStores_offline_table_config.json index c913ba8f6007..76d937dfcb3c 100644 --- a/pinot-tools/src/main/resources/examples/batch/starbucksStores/starbucksStores_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/batch/starbucksStores/starbucksStores_offline_table_config.json @@ -5,7 +5,6 @@ "retentionTimeUnit": "DAYS", "retentionTimeValue": "1", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/minions/batch/airlineStats/airlineStats_offline_table_config.json b/pinot-tools/src/main/resources/examples/minions/batch/airlineStats/airlineStats_offline_table_config.json index 640cb0eeafff..eb63b67c260b 100644 --- a/pinot-tools/src/main/resources/examples/minions/batch/airlineStats/airlineStats_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/minions/batch/airlineStats/airlineStats_offline_table_config.json @@ -5,7 +5,6 @@ "timeColumnName": "DaysSinceEpoch", "timeType": "DAYS", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": {}, diff --git a/pinot-tools/src/main/resources/examples/minions/batch/baseballStats/baseballStats_offline_table_config.json b/pinot-tools/src/main/resources/examples/minions/batch/baseballStats/baseballStats_offline_table_config.json index 662de400a064..9a0c0848592d 100644 --- a/pinot-tools/src/main/resources/examples/minions/batch/baseballStats/baseballStats_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/minions/batch/baseballStats/baseballStats_offline_table_config.json @@ -3,7 +3,6 @@ "tableType": "OFFLINE", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/minions/batch/baseballStats/baseballStats_offline_table_config_raw_inverted_index.json b/pinot-tools/src/main/resources/examples/minions/batch/baseballStats/baseballStats_offline_table_config_raw_inverted_index.json new file mode 100644 index 000000000000..e69de29bb2d1 diff --git a/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_offline_table_config.json b/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_offline_table_config.json index d1122e7648ef..1cb740162136 100644 --- a/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_offline_table_config.json +++ b/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_offline_table_config.json @@ -4,7 +4,6 @@ "segmentsConfig": { "timeColumnName": "created_at_timestamp", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1" }, "tenants": { diff --git a/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_realtime_table_config.json b/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_realtime_table_config.json index 3eeac1fe36d8..55b201fa7cbe 100644 --- a/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_realtime_table_config.json +++ b/pinot-tools/src/main/resources/examples/minions/stream/githubEvents/githubEvents_realtime_table_config.json @@ -4,7 +4,6 @@ "segmentsConfig": { "timeColumnName": "created_at_timestamp", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1", "replicasPerPartition": "1" }, diff --git a/pinot-tools/src/main/resources/examples/stream/airlineStats/docker/airlineStats_realtime_table_config.json b/pinot-tools/src/main/resources/examples/stream/airlineStats/docker/airlineStats_realtime_table_config.json index f6f2f6b7b87b..e936e8bb071a 100644 --- a/pinot-tools/src/main/resources/examples/stream/airlineStats/docker/airlineStats_realtime_table_config.json +++ b/pinot-tools/src/main/resources/examples/stream/airlineStats/docker/airlineStats_realtime_table_config.json @@ -7,7 +7,6 @@ "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "replication": "1", "replicasPerPartition": "1" }, diff --git a/pinot-tools/src/main/resources/examples/stream/dailySales/dailySales_realtime_table_config.json b/pinot-tools/src/main/resources/examples/stream/dailySales/dailySales_realtime_table_config.json index 1cd163410fd4..def6aefe84fb 100644 --- a/pinot-tools/src/main/resources/examples/stream/dailySales/dailySales_realtime_table_config.json +++ b/pinot-tools/src/main/resources/examples/stream/dailySales/dailySales_realtime_table_config.json @@ -3,7 +3,6 @@ "tableType": "REALTIME", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "timeColumnName": "daysSinceEpoch", "retentionTimeUnit": "DAYS", "retentionTimeValue": "50000", diff --git a/pinot-tools/src/main/resources/examples/stream/fineFoodReviews/fineFoodReviews_realtime_table_config.json b/pinot-tools/src/main/resources/examples/stream/fineFoodReviews/fineFoodReviews_realtime_table_config.json index 84941c978590..35acf8525c86 100644 --- a/pinot-tools/src/main/resources/examples/stream/fineFoodReviews/fineFoodReviews_realtime_table_config.json +++ b/pinot-tools/src/main/resources/examples/stream/fineFoodReviews/fineFoodReviews_realtime_table_config.json @@ -3,7 +3,6 @@ "tableType": "REALTIME", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "timeColumnName": "ts", "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", diff --git a/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_0/fineFoodReviews_part_0_realtime_table_config.json b/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_0/fineFoodReviews_part_0_realtime_table_config.json index ba9fa20eae61..56472db88a5e 100644 --- a/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_0/fineFoodReviews_part_0_realtime_table_config.json +++ b/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_0/fineFoodReviews_part_0_realtime_table_config.json @@ -3,7 +3,6 @@ "tableType": "REALTIME", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "timeColumnName": "ts", "retentionTimeUnit": "DAYS", "retentionTimeValue": "5", diff --git a/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_1/fineFoodReviews_part_1_realtime_table_config.json b/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_1/fineFoodReviews_part_1_realtime_table_config.json index ab4ee90fac5c..80464a7caac2 100644 --- a/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_1/fineFoodReviews_part_1_realtime_table_config.json +++ b/pinot-tools/src/main/resources/examples/stream/fineFoodReviews_part_1/fineFoodReviews_part_1_realtime_table_config.json @@ -3,7 +3,6 @@ "tableType": "REALTIME", "segmentsConfig": { "segmentPushType": "APPEND", - "segmentAssignmentStrategy": "BalanceNumSegmentAssignmentStrategy", "timeColumnName": "ts", "retentionTimeUnit": "DAYS", "retentionTimeValue": "5",