dkranchii opened a new pull request, #19834: URL: https://github.com/apache/pinot/pull/19834
`MultiKeysGroupIdGenerator.getGroupId` allocated an `int[]` and a `FixedIntArray` wrapper on every input row, even when the group already existed. This reuses a single `FixedIntArray` across rows and only replaces it when it is inserted into the group id map (i.e. when a new group is created), so allocation is proportional to the number of groups rather than the number of rows. The lookup still costs a single hash probe per row. When the group limit is reached the lookup path no longer allocates at all. The generator is owned by a single `MultistageGroupByExecutor` and driven from one thread, which is now documented on the class. Added `MultiKeysGroupIdGeneratorTest` covering repeated keys, null key values, the group limit path, and a many-group case that forces the map to rehash; each case verifies the group keys returned by `getGroupKeyIterator` so that key aliasing would be caught. -- 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]
