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

   Decoding a V4 DataTable currently allocates a temporary UTF-8 byte array for 
each string dictionary entry. Reuse a method-local scratch array across 
entries, growing only when necessary; returned Strings still own their 
contents. Wire encoding, the standalone string decoder, and malformed-input 
behavior remain unchanged.
   
   Adds buffer/ownership regression coverage, a full-message JMH benchmark and 
replay instructions in `pinot-perf/README.md`. Three alternating paired runs 
show 40.8% / 18.9% less allocation for 5000-entry ASCII / UTF-8 dictionaries, 
with median latency ratios of 1.028–1.033× / 1.033–1.047×. Outlier-first 
heap/read-only cases have median paired slowdowns of about 3.3% / 2.7% despite 
26.6% less allocation. Numeric, single-entry and growing-length allocation is 
unchanged. These are shared-host component results, not query-throughput 
claims; all 18 cases and raw results are retained in 
`pinot-perf/benchmark-results/datatable-dictionary-decode-20260912/`.
   
   Validation: 114 tests across dictionary decoding, full V4 messages, 
DataTable serde, selection and inter-segment GROUP BY; benchmark packaging; 
Spotless, checkstyle, license checks and Apache RAT. Independent 
correctness/testing review passed. Benchmark review flagged one short 
outlier/read-only pair at +5.111%; three separate longer pairs did not 
reproduce it (median paired ratios: direct 1.062×, heap 1.004×, read-only 
1.009×). Both sets are retained, with the original tradeoff disclosed. Scoped 
javac has no new source warnings versus the separately compiled baseline; the 
report records existing warnings and the prior same-base full-reactor Xlint 
limitation.
   


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