Head-to-head ANN comparison on the Yandex Text-to-Image dataset: SereneDB's IVF index (optionally quantized) against Qdrant's HNSW index, same base vectors, queries, and ground truth.
Loading run metadata…
nprobe), Qdrant = HNSW (hnsw_ef) — not
the same unit, so compare the recall-vs-QPS curve, not points at
equal effort.nlist_factor=2 (RaBitQ only ran at
nlist_factor=1, so it's absent here). The build-time bar
stacks CREATE INDEX under its
VACUUM (COMPACT_TABLE) merge from one build; index size
shows compact vs. no-compact and includes
the base-table columnstore copy (Qdrant's is index-only).For each recall@10 band, the best achievable query throughput at 32 concurrent clients. Y-axis is log-scaled — at high recall, QPS drops by an order of magnitude for both engines.
Time to a queryable index, shown separately per engine (see caveat above on why these aren't overlaid).
CREATE INDEX time, with the final
VACUUM (COMPACT_TABLE) merge stacked on top.
nlist_factor=2 (6,325 cells).
HNSW graph construction time; full precision vs. scalar quantization.
On-disk footprint, shown separately per engine.
Includes the base-table columnstore copy of the vectors.
nlist_factor=2 (6,325 cells).
Index-only footprint; full precision vs. scalar quantization.