KKcorps opened a new pull request, #19699:
URL: https://github.com/apache/pinot/pull/19699

   A realtime table sends each consuming segment only to the first instance of 
its instance partition. So when a CONSUMING `replicaGroupPartitionConfig` has 
`numPartitions > 1`, any `numInstancesPerPartition` other than 1 is quietly 
wrong. With 2, half the servers in each replica group never consume. Left unset 
(0), every partition gets the whole replica group, and on a fresh assignment 
all partitions consume on one server. We hit this on a production table and 
only caught it in a manual config review.
   
   This adds a check in `TableConfigUtils.validateInstanceAssignmentConfigs` 
that rejects that shape on create and update, for the default and FD-aware 
selectors. `IMPLICIT_REALTIME_TABLE_PARTITION_SELECTOR` already enforced the 
same rule. COMPLETED, OFFLINE and tier configs are not touched, because those 
spread segments across every instance in the partition.
   
   Compatibility: an existing table with this config will fail its next config 
update until the value is set to 1. That table is already mis-assigned, so 
failing loudly is the point.
   
   Tested with a new `TableConfigUtilsTest` case (0 and 2 on both selectors, 
plus the shapes that must still pass). All 80 `TableConfigUtilsTest` tests 
pass, and spotless, checkstyle and license checks pass on `pinot-segment-local`.
   
   🤖 Generated with [Claude Code](https://claude.com/claude-code)
   https://claude.ai/code/session_013tXyW5HzGqtJqwXCKvZtRR
   


-- 
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]

Reply via email to