ChrisHegarty commented on issue #13551:
URL: https://github.com/apache/lucene/issues/13551#issuecomment-2470361869

   Late to the party!!! 
   
   I want to dig a little further on the distinction between the implementation 
of preload and prefetch, at least with the mmap implementation. The former 
touches every page (effectively forcing into the cache), while the latter 
simply advises of the access pattern.
   
   For sequential access, a combination of sequential advice and prefetch works 
really well, but not so well for random access. Random access, at least for the 
HNSW graph and the related vector data (be it quantised or not), really needs 
to be resident in memory. Preload gives us that, at least at the time of 
opening. Prefect does not.
   
   For optimized vector search use cases, assuming enough RAM, I was thinking 
that a separate `IndexInput::load` could be useful. This would be similar to 
preload (touches every page), but can be called after opening. It may or may 
not be super helpful, it mostly depends on how things get setup, etc, and 
whether or not preload is good enough for your use case.
   
   For optimized vector search use cases, assuming enough RAM, I was thinking 
that a separate `IndexInput::lock` could be useful. Basically a wrapper around 
`mlock`. The idea being that Vector search perf sucks when there is not enough 
RAM to keep the graph and vector data resident in memory, so allow to load and 
lock it, then leave the tradeoff to the user to decide if they want this "fail 
fast" rather then "search slowly" behaviour (at least for pure vector search).
   
   


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