siddharthteotia commented on issue #8634:
URL: https://github.com/apache/pinot/issues/8634#issuecomment-1118764881

   - It seems like there is a potential performance overhead associated with 
dynamic virtual call dispatch given that "vtable stub" shows up as taking top 
22% of time. 
   - This is most likely coming from return _reader.read(docId) in 
FixedBitSVForwardIndexReaderV2 as the read() call has to be dispatched to the 
actual bit reader (1 of 32 types)
   - The function call overhead and in fact virtual dispatch overhead can 
probably be optimized if we convert the APIs to bulk based in 
SVScanDocIdIterator
       -- next() gathers docIds in an array
       -- calls doesValueMatch on array instead of a single docId
       -- Call FixedBitSVForwardIndexReaderV2.readDictIds() instead of 
FixedBitSVForwardIndexReaderV2.getDictId as done in today's code
       -- Call _predicateEvaluator.applySV on an array / batch of dictIds
   
   80% of the time is spent in doesValueMatch().
   
   - 60% in FixedBitSVForwardIndexReaderV2.getdictId
   - 10% each in accessing the outer class member variable (I am not super sure 
if this is even possible but can investigate)
   
   <img width="2509" alt="Screen Shot 2022-05-05 at 9 17 12 AM" 
src="https://user-images.githubusercontent.com/2150694/166967588-042a68e3-5398-46fe-ae2c-c520f9a044c8.png";>
   
   


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