qdrant-scaling-query-volume

--- Guides Qdrant query volume scaling. Utiliser lorsque quelqu'un demande 'query returns too many results', 'scroll performance', 'large limit values', 'paginating search results', 'fetching many vectors', ou 'high cardinality results'.

npx skills add https://github.com/qdrant/skills --skill qdrant-scaling-query-volume

Mise à l'échelle pour le volume de requêtes

Problème : Lorsqu'une requête a une limite élevée (par exemple 1000) et qu'il y a plusieurs shards (par exemple 10), naïvement chaque shard doit retourner les 1000 résultats complets — totalisant 10 000 points notés transférés et fusionnés. C'est inefficace puisque les données sont distribuées aléatoirement entre les auto-shards.

Idée centrale

Au lieu de demander à chaque shard la limite complète, demander à chaque shard une limite plus petite calculée via les statistiques de distribution de Poisson, puis fusionner. C'est sûr car l'auto-sharding garantit une distribution de données aléatoire et indépendante.

Quand il s'active

  • Plus d'1 shard
  • L'auto-sharding est en cours d'utilisation (tous les shards interrogés partagent la même clé de shard)
  • La limite + décalage de la requête >= SHARD_QUERY_SUBSAMPLING_LIMIT (128)
  • La requête n'est pas exacte

Compromis clé

La stratégie échange une petite probabilité de résultats légèrement incomplets contre une réduction importante du transfert de données inter-shards, particulièrement pour les requêtes à limite élevée sur plusieurs shards. Le facteur de sécurité 1.2x et le seuil Poisson à 99,9 % maintiennent le taux d'erreur très bas — comparable aux imprécisions déjà introduites par les indices de vecteurs approximatifs comme HNSW.