mikemccand commented on PR #15585: URL: https://github.com/apache/lucene/pull/15585#issuecomment-3805633205
> The benchmarks are looking good : If I understand correctly, Lucene `main` now defaults to no IOContext-based `madvise`? And luceneutil just goes with Lucene's defaults here? Which makes these benchmark results very surprising! Oh, wait!, that is a different `madvise`. This change is about Lucene's dynamic prefetch -- `madvise(WILL_NEED)` for specific byte ranges of the file. (Lucene also has static prefetch -- up front `madvise(WILL_NEED)` on the entire file when it's opened, but we are not changing that here). So this change fixes the frequency of clones calling `.isLoaded()` on the entire file. In the hot case, this is disastrous (slowest call for `.isLoaded()`). Still, for `HighTerm`, which is a high frequency term, we create the clones (once per segment) and then use them for a long-ish time. I would've thought that the high `.isLoaded()` cost would've been amortized and we wouldn't see such gains from `HighTerm`. Confusing... -- 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]
