On-disk graph-based vector search (GVS) has become the dominant approach for serving large-scale vector databases at high recall. Yet prior systems struggle to sustain concurrent search and update throughput on high-dimensional workloads. We identify the main bottleneck as position seeking, the graph traversal that finds neighbors during each update. Unlike search, which returns only the top-K closest vectors, it explores a much larger set to build an R-neighbor list of close neighbors and long-range shortcuts. These neighbors have different distance-accuracy requirements, yet search-oriented packed layouts fetch full vectors with every edge-list access, consuming cache capacity regardless of their role. We present NAVIS, an on-SSD GVS system that redesigns position seeking around this mismatch. At its core, locality-driven decoupling separates vectors from edgelists and packs graph-local edgelists together. This decoupling enables convergence-aware speculative reranking to selectively load full vectors until a sufficient set of close neighbors is resolved, while selecting the remaining shortcuts using approximate distances. It also allows NAVIS to devote cache capacity entirely to edgelists. To make this cache effective, NAVIS keeps the entrance graph fresh via lightweight updates that reuse traversal information already produced during position seeking, thereby maintaining a stable hot set of edgelists near its entry points. Across multiple large-scale benchmarks, NAVIS improves insertion throughput by up to 3.97x and concurrent search throughput by up to 4.00x while reducing search latency by up to 75.69%.
翻译:暂无翻译