rseetham opened a new pull request, #18948: URL: https://github.com/apache/pinot/pull/18948
## Summary Stacked on #18913 (`TopicPartitionId` introduction) — please review/merge that one first. This PR migrates internal partition-identity handling from raw `int`/`Integer` partition IDs to the `TopicPartitionId` composite key introduced in the prior PR, in preparation for supporting multiple Kafka topics per Pinot table. - Add context-aware `LLCSegmentName(String, boolean hasMultipleStreams)` that decomposes old-format composite partition IDs (e.g. `10003` -> topic 1, partition 3) at parse time when the table has multiple streams, so `TopicPartitionId` is always canonical regardless of segment format. - Migrate internal maps from `Map<Integer, ...>` to `Map<TopicPartitionId, ...>` across controller, server, query planner, segment-local, and minion tasks. - Change `assignConsumingSegment`, `computeStartOffset`, and other internal methods to accept `TopicPartitionId` directly instead of raw partition ints. - Thread `hasMultipleStreams` through `RealtimeSegmentConfig`, `MutableIndexContext`, and Lucene index constructors. - Add `TopicPartitionId.fromPartitionGroupMetadata()` for SPI boundary wrapping and `SegmentUtils.getTopicPartitionIdFromSegmentName()` as the new API. - Deprecate the now-superseded `IngestionConfigUtils` encode/decode helpers (kept for external/legacy call sites not covered by this migration). ## Test plan - [x] `test-compile` across `pinot-spi, pinot-common, pinot-controller, pinot-core, pinot-segment-local, pinot-query-planner` passes cleanly - [x] `PinotLLCRealtimeSegmentManagerTest` — 42/42 pass - [x] `IngestionDelayTrackerTest` — 9/9 pass - [x] `PinotSegmentRestletResourceTest` — 8/8 pass -- This is an automated message from the Apache Git Service. To respond to the message, please log on to GitHub and use the URL above to go to the specific comment. To unsubscribe, e-mail: [email protected] For queries about this service, please contact Infrastructure at: [email protected] --------------------------------------------------------------------- To unsubscribe, e-mail: [email protected] For additional commands, e-mail: [email protected]
