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]
