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]

Reply via email to