sunithabeeram opened a new pull request #3470: [PINOT-7328] Reduce lock 
contention in physical planning phase by reducing the total number of tasks
URL: https://github.com/apache/incubator-pinot/pull/3470
 
 
   Performance tests show that for requests that require little server work 
(docs/entries scanned <100k), the latency increases quickly with QPS while CPU 
is hardly used. In one example, with a query that took ~2ms to execute, beyond 
600QPS the latency shot up to 200+ms while CPU utilization was <20%. 
   
   Profiling/thread dumps showed that majority of the time was spent in taking 
tasks off the task queue in the physical planning phase - queries were 
essentially serialized on the LinkedBlockingQueue's lock.
   
   This change bounds the total number of tasks that can be created/put on the 
queue, thus reducing contention and doing more work per task.
   
   With this change in place, we were able to push the example query to 2000+ 
qps.
   
   Testing done:
   - Added unit tests to cover functionality.
   - Perf tests as noted above.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
[email protected]


With regards,
Apache Git Services

---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]

Reply via email to