vigyasharma commented on issue #14431: URL: https://github.com/apache/lucene/issues/14431#issuecomment-2807330038
For some Amazon Product Search context, we do a searcher switch-over to the newly built index once it is declared healthy and ready to use. The idea here is to first build the index quickly, then force-merge out deletes aggressively, and then mark the index as "in-service". Our current setup does the searcher switchover while running aggressive delete-% merges in background. But we realized that by delaying searcher switchover to after (all or some) of these merges complete, we get better search performance from the get go. We don't want to wait indeterminably for these merges, hence the idea of a timeout. ... Taking a step back, I think we need more clarity on what a "timeout" means for this API. What happens if merges don't complete within the timeout? Would we simply return from the API and allow the remaining merges to run in background? What happens if a setup is not using ConcurrentMergeScheduler? I suppose the API is implicitly blocking if your merge scheduler is blocking (like `SerialMergeScheduler`). But how does this behave with a timeout? Should we abort the remaining merges? As an alternative, could we monitor these merges from outside the API? Suppose `forceMergeDeletes()` returned the `MergeSpec` it's working on. We could then simply wait in a loop till either merges in the spec complete or we hit a timeout. Post timeout, merges could still continue in background, just that we would've stopped waiting. -- 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