[WIP] [lumina] Reuse LuminaSearcher across queries via searcher pool#7674
[WIP] [lumina] Reuse LuminaSearcher across queries via searcher pool#7674chenghuichen wants to merge 1 commit into
Conversation
JingsongLi
left a comment
There was a problem hiding this comment.
This PR is marked as [WIP]. A few observations:
-
Searcher Pool design: The
LuminaSearcherPoolconcept is valuable for reusing expensive searcher instances across queries. Key questions:- What's the eviction strategy? LRU? Time-based?
- Is the pool bounded? What happens when it fills up?
- How does refresh work when the underlying index is updated (e.g., after compaction adds new segments)?
-
Thread safety: Vector index searchers may hold file handles or memory-mapped regions. Ensure the pool handles concurrent access correctly — particularly the case where a searcher is returned to the pool while still being used by another thread.
-
Resource cleanup: When the pool is closed, all pooled searchers must release their native resources (e.g., Lucene IndexReader handles, mmap regions). Is there a
close()method on the pool? -
PR description is empty ("Purpose: / Tests:") — please fill in the design rationale and test plan before requesting review.
Happy to look more closely once this is ready for review.
Purpose
Tests