qdrant-scaling-query-volume

Guide la mise à l'échelle du volume de requêtes Qdrant. À utiliser quand quelqu'un demande « la requête retourne trop de résultats », « performance du scroll », « grandes valeurs de limit », « pagination des résultats de recherche », « récupération de nombreux vecteurs », ou « résultats à haute cardinalité ».

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

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

Problème : Quand une requête a une limite élevée (par ex. 1000) et qu'il y a plusieurs shards (par ex. 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 la distribution de Poisson, puis fusionner. C'est sûr parce que l'auto-sharding garantit une distribution de données aléatoire et indépendante.

Quand cela s'active

  • Plus de 1 shard
  • L'auto-sharding est en use (tous les shards interrogés partagent la même shard key)
  • La limite + offset 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 de Poisson à 99,9% maintiennent le taux d'erreur très bas — comparable aux imprécisions déjà introduites par les indices vectoriels approximatifs comme HNSW.

Skills similaires