xiangfu0 commented on PR #19535: URL: https://github.com/apache/pinot/pull/19535#issuecomment-5768485863
@Jackie-Jiang re: whether the short-lived arrays matter — agreed that TLAB allocation + young-gen collection makes each one cheap, and the numbers in the description reflect that: latency is roughly flat (≈ +3–5% on ASCII/UTF-8 dictionaries of 5,000 entries, within noise elsewhere, with one outlier-first case slightly slower). The consistent win is allocated bytes per decode: −41% (ASCII), −19% (UTF-8), −27% (outlier-first) of the whole `getDataTable` allocation, since the per-entry temp array is about the same size as the resulting String's backing array. On the broker that decodes many server responses per query (and the MSE mailbox path via `ZeroCopyDataBlockSerde`), that translates into proportionally less young-gen churn rather than a per-call speedup. The extra logic is now confined to two small loops (`DataTableUtils.decodeStringArray` and `ZeroCopyDataBlockSerde.deserializeDictionary`). If you still feel it's not worth the complexity, I'm fine closing this. -- 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]
