Questions
18 of 18
1Why did Qdrant consolidate search, recommend, and discovery operations into the Universal Query API?
2What is a prefetch stage in Qdrant's Universal Query API, and why would you use multiple prefetches?
3How do Reciprocal Rank Fusion and Distribution-Based Score Fusion differ when combining Qdrant prefetch results?
4How would you retrieve 500 candidates with dense vectors and rerank them using a ColBERT multivector?
5What is Qdrant's recommend query mode, and how is it different from plain similarity search?
6How does Qdrant combine vector similarity search with structured payload filters?
7What are must, should, and must_not clauses in a Qdrant payload filter?
8Why can filtering after an ANN search return too few results when the filter is highly selective?
9How does Qdrant's filtered vector search avoid the classic post-filtering problem?
10How would you implement a geo-radius search for similar items within 5 km of a location in Qdrant?
11Why should you create payload indexes for fields that are filtered frequently at scale?
12What payload index types does Qdrant support, and how would you choose one for tags versus price?
13What is a full-text payload index used for, and how does it differ from an exact-match keyword index?
14What is the cost of creating too many payload indexes on a high-write Qdrant collection?
15Why should point uploads be batched instead of sending one upsert request per point?
16What is Qdrant's Scroll API used for, and why is it preferable to vector search when iterating through matching points?
17How does Qdrant Scroll pagination avoid the main performance problem of large SQL OFFSET pagination?
18What is a realistic batch size for bulk-loading millions of Qdrant points, and what factors should influence it?
18 / 18

What is a realistic batch size for bulk-loading millions of Qdrant points, and what factors should influence it?

Batch-size tuning

There is no universal Qdrant batch size that is correct for every workload. I would start with a moderate batch, often on the order of hundreds to a few thousand points, and benchmark from there rather than treating a fixed number as a rule.

The main variables are the serialized payload size, vector dimensionality, network bandwidth, client memory, Qdrant CPU and RAM, index maintenance cost, write concurrency, and acceptable retry latency. A batch containing 2,000 small vectors may be easy to handle while 2,000 large multivectors can be enormous.

I would increase the batch until throughput stops improving or tail latency, memory pressure, request failures, or Qdrant resource contention becomes unacceptable. I would also tune concurrency separately because ten medium batches in flight can behave very differently from one huge batch.

A common mistake is optimizing only requests per second. For a production ingestion pipeline I care about points per second, bytes per second, Qdrant resource utilization, failure rate, and the impact on interactive search. The optimal value is workload- and deployment-dependent.

javascript
  1. 1

    Start with a measured moderate batch rather than a universal number

  2. 2

    Vector dimensions and payload size strongly affect request size

  3. 3

    Tune batch size together with write concurrency

  4. 4

    Measure throughput, tail latency, resource utilization, and failure behavior

Difficulty: 5/10
Topics: Batch size, Bulk ingestion, Performance

Scenario Questions

0-2 years experience
  1. 1

    Your importer currently sends one point per request. What simple change would you test first to improve throughput?

  2. 2

    Why might 1,000 small vectors be easier to send than 1,000 large multivectors?

2-5 years experience
  1. 1

    Increasing batch size from 500 to 5,000 improves throughput but causes request timeouts. How would you choose a better operating point?

  2. 2

    Your network can handle large requests but Qdrant memory usage spikes during ingestion. Which tuning dimension would you investigate?

5-8 years experience
  1. 1

    Bulk loading competes with interactive search and causes p99 query latency spikes. How would you tune batch size and concurrency together?

  2. 2

    A batch-size benchmark is excellent on staging but poor in production. Which workload characteristics could explain the difference?

8+ years experience
  1. 1

    You need to ingest a billion points while preserving a strict search SLO. How would you design a benchmark matrix across batch size, concurrency, index state, and resource limits?

  2. 2

    Your workload contains multiple vector sizes and payload distributions. Would you use one fixed batch size or adaptive batching? Design the approach.

Follow-up Questions

  • What metrics would you monitor while tuning batch size?
  • How is batch size different from ingestion concurrency?