并发上限: RAYON_NUM_THREADS=1 串行化整个服务(损失 14 倍); nq=1 在 n=8192 时出现延迟峰值; 一个写入者使读取吞吐量减半
作者: RyanCodrai创建于 2026年7月29日更新于 2026年9月6日
标签needs-human-decision
Found by bug-hunt wave 23 (read-heavy service simulation — the workload shape the library is actually for; prior soaks were write-heavy). M4-class host, 14 logical cores, dim=128, measured per-call with perf_counter.
1. HIGH — search concurrency is capped by RAYON_NUM_THREADS, not by caller threads. Every search on an index of ≥8192 vectors goes through the one process-local rayon pool (turbovec-Python/src/lib.rs:438, :801 → with_pool at :1192). pool.install() from an external thread injects the job into that shared pool and blocks the caller, so concurrent searches are capped by pool size and Python-side concurrency contributes nothing.
内容来源: RyanCodrai/turbovec