mikemccand commented on PR #13190: URL: https://github.com/apache/lucene/pull/13190#issuecomment-2009413290
Phew, it took me two hours of strongly caffeinated time to catch up on this! Thank you @benwtrent. What an awesome change, modernizing Lucene's merge concurrency so that intra-merge (just HNSW, but maybe other index parts soon) concurrency is enabled by default. (Separately, the nightly benchy had a silly off-by-one bug preventing it from resuming after you reverted the previous PR ... I think I've fixed that bug now, and kicked off a one-off nightly benchy run that will hopefully finish late today). Some high level questions (sorry if these were already asked/answered): * How do we control the risk that a massive merge with KNN vectors soaks up all available concurrency from the shared Executor for intra-merge concurrency (all threads doing HNSW merging) and then starves smaller merges that would finish quickly? * Maybe we don't need the IO write rate limiter anymore? It's a tricky setting because the `mbPerSec` you set is then multiplied by the number of concurrent merges that are running. It is a per-merge setting, not a global setting, so it's kinda trappy today. Finally, I worry that the rate-limiter's simplistic "instantaneous" measure is making it effectively super buggy (there is a TODO about this), because merging that does a lot of CPU work and then writes a lot of bytes will be effectively throttled to far below the target `mbPerSec` in aggregate. A better solution might be something like the "burst IOPs bucket" that AWS (and likely other cloud providers) offer ("Burst IOPS is a feature of Amazon Web Services (AWS) EBS volume types that allows applications to store unused IOPS in a burst bucket and then drain them when needed" -- thank you Gemini for the summary). This is clearly not a blocker for this issue, but we really should (separately) fix it. I'll open a follow-on issue about this ... but to me it's another reason to maybe remove this feature entirely. -- 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