Задача
AI-платформа: семантический поиск и ретрив по миллиардам эмбеддингов с низкой задержкой и высоким recall. Одноузловой ANN-индекс упёрся одновременно в память (векторы не влезали) и в latency (перебор деградировал на хвосте). Плюс индекс не статичный — в него постоянным потоком прилетают новые объекты.
Нужен индекс, который масштабируется за пределы одной ноды и обновляется без полного ребилда.
Подход
Построили шардированный распределённый индекс: гибрид IVF-PQ и HNSW, векторы сжаты product-квантизацией ради памяти. Запрос идёт fan-out по шардам с последующим merge top-k; recall и latency балансируются числом проб и параметрами квантизации под целевой SLA.
Апдейты сделали инкрементальными: новые объекты доезжают в шарды без перестройки всего индекса, поэтому свежесть держится при потоковых вставках. Горячие шарды реплицируются под нагрузку, fan-out параллелится — хвост latency остаётся предсказуемым.
Стек
HNSW + IVF-PQ · product quantization · distributed sharding · gRPC · Kubernetes
Результат
- 3.4 млрд векторов в распределённом индексе.
- 6 мс p99 поиска.
- 96% recall@10 на целевом наборе.
- Инкрементальные апдейты без полного ребилда индекса.