jpountz opened a new pull request, #13381:
URL: https://github.com/apache/lucene/pull/13381

   As Robert pointed out and benchmarks confirmed, there is some (small) 
overhead to calling `madvise` via the foreign function API, benchmarks suggest 
it is in the order of 1-2us. This is not much for a single call, but may become 
non-negligible across many calls. Until now, we only looked into using 
prefetch() for terms, skip data and postings start pointers which are a single 
prefetch() operation per segment per term.
   
   But we may want to start using it in cases that could result into more calls 
to `madvise`, e.g. if we start using it for stored fields and a user requests 
10k documents. In #13337, Robert wondered if we could take advantage of 
`mincore()` to reduce the overhead of `IndexInput#prefetch()`, which is what 
this PR is doing.
   
   For now, this is trying to not add new APIs. Instead, `IndexInput#prefetch` 
tracks consecutive hits on the page cache and calls `madvise` less and less 
frequently under the hood as the number of cache hits increases.
   


-- 
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: issues-unsubscr...@lucene.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


---------------------------------------------------------------------
To unsubscribe, e-mail: issues-unsubscr...@lucene.apache.org
For additional commands, e-mail: issues-h...@lucene.apache.org

Reply via email to