Closed siddharthteotia closed 2 years ago
_reader.read(docId)
in FixedBitSVForwardIndexReaderV2
as the read()
call has to be dispatched to the actual bit reader (1 of 32 types)next()
gathers docIds in an array (will have to figure out the batch sizing etc)
-- 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 dictIds80% of the time is spent in doesValueMatch().
@vvivekiyer is going to take a stab at this.
https://github.com/apache/pinot/blob/master/pinot-core/src/main/java/org/apache/pinot/core/operator/dociditerators/SVScanDocIdIterator.java
Bulk API can potentially be added to do this in a tight-loop (vectorized like manner) for few fixed number of records at a time as opposed to a function call to
doesValueMatch
per document. May be there is way to change interface such that caller of iterator can possibly directlydoesValueMatch
in a tight-loop