wirybeaver commented on PR #12242:
URL: https://github.com/apache/pinot/pull/12242#issuecomment-1932695513
I made an A/B testing to compare the performance option 1(static thread
local) vs option 2(move bytes array to context) in two clusters with same size
and configuration. It turns out that the option 1 is much better than the
option 2 in terms of the query latency and memory usage efficiency when the QPS
is high and queries consist of json_indexing over large json blobs and reading
large payload column.
| Option | Young Gen CountAve per 5min | Ave
Young Gen Time | Max Supervised Space After GC | Peak heap usage | Server Up
Time | P90 Query Latency |
|--------------------------------------|-----------------------------|--------------------|-------------------------------|-----------------|----------------------------|-------------------|
| 1 (Preferred) static thread local | 1 | 0.8ms
| 430MB | 91GB | Min: > 2 day
Max: infinite | 4s |
| 2 Move byte array to reader context | 5 | 5ms
| 2.3GB | 186GB | All nodes: <
~1 day | 20s |
After I rollback the option 2 to option 1, the heap memory usage drop downs
by half.
<a href="https://imgur.com/ZfYMseP"><img
src="https://i.imgur.com/ZfYMseP.png" title="source: imgur.com" /></a>
--
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]