10-billion-vector-search
Yang Cen
practical-llm-pretraining
Ayush Chaurasia
newsletter-august-2026
ChanChan Mao
data-mining-challenge-in-physical-ai
Lei Xu
feature-engineering-examples
Justin Miller
announcing-reverie-summit-2026
LanceDB
newsletter-july-2026
ChanChan Mao
crewai-rebuilt-agent-memory-on-lancedb
CrewAI
data-loading-guide
Weston Pace
one-table-to-train-your-robot-lancedb-as-the-data-layer-for-lerobot
Ayush Chaurasia
volcano-engine-lance-agent-memory
Bytedance
make-handwritten-notes-searchable-optimizing-an-ocr-pipeline-with-lancedb
Prashanth Rao
china-merchants-lancedb-story
China Merchants Lion Rock AI Lab
rabitq-gets-faster-higher-recall-lower-latency-query-time-control
Yang Cen
newsletter-june-2026
ChanChan Mao
from-messy-pdfs-to-verifiable-answers-with-liteparse-and-lancedb
Prashanth Rao
Clelia Astra Bertelli
faster-vlm-fine-tuning-with-materialized-model-features-in-lancedb
Prashanth Rao
Ayush Chaurasia
lance-blob-v2-late-materialization-for-large-binary-data-in-spark
Drew Gallardo
semantic-memory-for-hermes-agent-with-lancedb
Prashanth Rao
a-metadata-benchmark-of-lance-delta-lake-and-iceberg-on-s3
Jack Ye
scalable-feature-engineering-on-multimodal-datasets
Prashanth Rao
stable-worldmodel-a-high-performance-platform-for-reproducible-world-model-research
Ayush Chaurasia
Quentin Lhoest
Lucas Maes
Quentin Le Lidec
reproducible-data-curation-in-the-multimodal-lakehouse
Prashanth Rao
newsletter-may-2026
ChanChan Mao
newsletter-april-2026
ChanChan Mao
how-lancedb-accelerates-vector-search-at-10-billion-scale
Yang Cen
opensearch-vs-lancedb-for-vector-search-query-cost-and-infrastructure
Justin Miller
volcano-engine-autonomous-driving-data-lake-solution
Kejian Ju
unifying-the-av-ml-stack-lancedb
Ayush Chaurasia
lance-json-support-why-you-might-not-really-need-variant
Jack Ye
building-a-storage-format-for-the-next-era-of-biology
Pavan Ramkumar
newsletter-march-2026
ChanChan Mao
smart-parsing-meets-sharp-retrieval-combining-liteparse-and-lancedb
Clelia Astra Bertelli
Prashanth Rao
lance-format-v2-2-benchmarks-half-the-storage-none-of-the-slowdown
Xuanwo
make-your-sql-workflows-multimodal-with-lancedb-x-duckdb
Prashanth Rao
agentic-coding-as-community-stewardship
Xuanwo
what-we-mean-by-multimodal
Prashanth Rao
ai-native-development-local-continue-lancedb
Ty Dunn
lance-file-format-2-2-taming-complex-data
Xuanwo
lance-blob-v2
Xuanwo
Jack Ye
openclaw-lancedb-memory-layer
Xuanwo
Prashanth Rao
openclaw-lancedb-seed2
LanceDB
openclaw-memory-from-zero-to-lancedb-pro
Prashanth Rao
upload-lance-datasets-to-hf-hub
Prashanth Rao
zero-shot-image-classification-with-vector-search
Vipul Maheshwari
werides-data-platform-transformation-how-lancedb-fuels-model-development-velocity
Qian Zhu
Fei Chen
training-a-variational-autoencoder-from-scratch-with-the-lance-file-format
LanceDB
track-ai-trends-crewai-agents-rag
LanceDB
tokens-per-second-is-not-all-you-need
Mingran Wang
Tan Li
the-future-of-open-source-table-formats-iceberg-and-lance
Jack Ye
the-case-for-random-access-i-o
LanceDB
series-a-funding
Chang She
semanticdotart
Ayush Chaurasia
second-dinners-secret-weapon-lancedb-powered-rag-for-faster-smarter-game-development
Qian Zhu
search-within-an-image-331b54e4285e
Kaushal Choudhary
scalable-computer-vision-with-lancedb-voxel51-d8b65066d5f6
LanceDB
rethinking-table-file-paths-lance-multi-base-layout
Jack Ye
rag-isnt-one-size-fits-all
Leonard Marcq
python-package-to-convert-image-datasets-to-lance-type
Vipul Maheshwari
one-million-iops
Weston Pace
november-feature-roundup
Will Jones
newsletter-september-2025
Jasmine Wang
newsletter-october-2025
Jasmine Wang
newsletter-november-2025
ChanChan Mao
newsletter-june-2025
David Myriel
newsletter-july-2025
Jasmine Wang
newsletter-january-2026
ChanChan Mao
newsletter-february-2026
ChanChan Mao
newsletter-december-2025
ChanChan Mao
newsletter-august-2025
Jasmine Wang
my-summer-internship-experience-at-lancedb-2
Raunak Sinha
my-simd-is-faster-than-yours-fb2989bf25e7
LanceDB
multimodal-myntra-fashion-search-engine-using-lancedb
LanceDB
multimodal-lakehouse
David Myriel
multi-document-agentic-rag-a-walkthrough
Vipul Maheshwari
modified-rag-parent-document-bigger-chunk-retriever-62b3d1e79bc6
Mahesh Deshwal
memgpt-os-inspired-llms-that-manage-their-own-memory-793d6eed417e
Ayush Chaurasia
late-interaction-efficient-multi-modal-retrievers-need-more-than-just-a-vector-index
Ayush Chaurasia
lancedb-x-continue
LanceDB
lance-x-huggingface-a-new-era-of-sharing-multimodal-data
Prashanth Rao
Quentin Lhoest
Xuanwo
Ayush Chaurasia
lance-x-duckdb-sql-retrieval-on-the-multimodal-lakehouse-format
Xuanwo
lance-windows-windows-lance
Chang She
lance-v2
Weston Pace
lance-namespace-lancedb-and-ray
Jack Ye
lance-file-2-1-stable
Weston Pace
lance-file-2-1-smaller-and-simpler
Weston Pace
lance-data-viewer
Gordon Murray
lance-community-governance
Jack Ye
introducing-lance-namespace-spark-integration
Jack Ye
implementing-corrective-rag-in-the-easiest-way-2
LanceDB
hybrid-search-rag-for-real-life-production-grade-applications-e1e727b3965a
Mahesh Deshwal
hybrid-search-combining-bm25-and-semantic-search-for-better-results-with-lan-1358038fe7e6
LanceDB
hybrid-search-and-custom-reranking-with-lancedb-4c10a6a3447e
LanceDB
how-to-reduce-hallucinations-from-llm-powered-agents-using-long-term-memory-72f262c3cc1f
Tevin Wang
guide-to-use-contextual-retrieval-and-prompt-caching-with-lancedb
LanceDB
grpo-understanding-and-fine-tuning-the-next-gen-reasoning-model-2
Mahesh Deshwal
graphrag-hierarchical-approach-to-retrieval-augmented-generation
Akash Desai
gpu-accelerated-indexing-in-lancedb-27558fa7eee5
LanceDB
geo-support
Jack Ye
geneva-twelvelabs
David Myriel
geneva-feature-engineering
Jonathan Hsieh
from-bi-to-ai-lance-and-iceberg
Jack Ye
Prashanth Rao
fluss-integration
Wayne Wang
file-readers-in-depth-parallelism-without-row-groups
Weston Pace
feature-rabitq-quantization
David Myriel
Yang Cen
feature-full-text-search
David Myriel
enhance-rag-integrate-contextual-compression-and-filtering-for-precision-a29d4a810301
Kaushal Choudhary
effortlessly-loading-and-processing-images-with-lance-a-code-walkthrough
LanceDB
designing-a-table-format-for-ml-workloads
Weston Pace
custom-dataset-for-llm-training-using-lance
LanceDB
creating-a-fintech-agent
Vipul Maheshwari
convert-any-image-dataset-to-lance
LanceDB
columnar-file-readers-in-depth-structural-encoding
Weston Pace
columnar-file-readers-in-depth-repetition-definition-levels
Weston Pace
columnar-file-readers-in-depth-compression-transparency
Weston Pace
columnar-file-readers-in-depth-column-shredding
Weston Pace
columnar-file-readers-in-depth-backpressure
Weston Pace
columnar-file-readers-in-depth-apis-and-fusion
Weston Pace
chunking-techniques-with-langchain-and-llamaindex
Prashant Kumar
chunking-analysis-which-is-the-right-chunking-approach-for-your-language
Shresth Shukla
chat-with-csv-excel-using-lancedb
LanceDB
case-study-netflix
David Myriel
case-study-dosu
Qian Zhu
Michael Ludden
case-study-cognee
David Myriel
Vasilije Markovic
case-study-coderabbit
Qian Zhu
building-rag-on-codebases-part-2
Sankalp Shubham
building-rag-on-codebases-part-1
Sankalp Shubham
branching-and-shallow-clone
Jack Ye
better-rag-with-active-retrieval-augmented-generation-flare-3b66646e2a9f
LanceDB
benchmarking-random-access-in-lance
Chang She
benchmarking-lancedb-92b01032874a-2
LanceDB
benchmarking-cohere-reranker-with-lancedb
LanceDB
anythingllms-competitive-edge-lancedb-for-seamless-rag-and-agent-workflows
Ayush Chaurasia
announcing-lance-sdk
Weston Pace
agentic-rag-using-langgraph-building-a-simple-customer-support-autonomous-agent
LanceDB
advanced-rag-precise-zero-shot-dense-retrieval-with-hyde-0946c54dfdcb
LanceDB
accelerate-vector-search-applications-using-openvino-lancedb
LanceDB
a-primer-on-text-chunking-and-its-types-a420efc96a13
Prashant Kumar
a-practical-guide-to-training-custom-rerankers
Ayush Chaurasia
a-practical-guide-to-fine-tuning-embedding-models
Ayush Chaurasia
keep-your-data-fresh-with-cocoindex-and-lancedb
Prashanth Rao
Linghua Jin

From 10 Million to 10 Billion: Vector Search Built to Grow

September 15, 2026
Engineering

Start with 10 million vectors. Grow to billions. Keep the freedom to choose how you search.

A search feature rarely stands still. An image browser becomes a recommendation system. A retrieval pipeline needs better matches. New embeddings keep arriving, and the table grows from millions of vectors to billions.

LanceDB is built for that journey, with compact, efficient search at 10 million vectors, distributed indexing as the table grows, and responsive queries at 10-billion vector scale. The same table can also support offline analysis, with storage and query-time precision controls that adapt to each workload.

Start with 10 million vectors

We started with 10 million 768-dimensional image embeddings, comparing RaBitQ (RQ), product quantization (PQ), and scalar quantization (SQ). We tested two PQ configurations, PQ96 and PQ384, alongside one-bit and five-bit RQ and SQ, all without raw-vector refinement.

Using five-bit RaBitQ, LanceDB's underlying Lance engine reached 1,614 QPS at 96.2% recall. PQ96 reached 1,647 QPS at 68.6% recall, while PQ384 reached 1,047 QPS at 91.5% recall. Five-bit RQ combined higher recall than either PQ configuration with throughput close to PQ96 and 1.54× that of PQ384.

RQ1, RQ5, PQ96, PQ384 and SQ throughput
Recall and throughput across RQ, PQ, and SQ configurations on 10M × 768d image embeddings.

10M × 768d image embeddingsRQ1RQ5PQ96PQ384SQ
Recall75.0%96.2%68.6%91.5%95.4%
Queries per second1,6951,6141,6471,047789

For teams running search all day, that efficiency translates into more requests from the same infrastructure budget. LanceDB's five-bit RaBitQ search reaches this quality directly from compressed vectors, without an extra pass over the original vectors.

RaBitQ combines compact codes with selective scoring. LanceDB starts with a cheap one-bit distance bound to eliminate unpromising candidates, then uses additional bits only for the survivors. In one profiled workload, this pruning step eliminated about 99.9% of candidate rows once the result threshold tightened. That helps five-bit RQ deliver higher recall without multiplying query time by the number of bits.

Storage and build speed add two more dimensions to the choice. The estimated one-bit RQ footprint is one fifth that of five-bit RQ, while five-bit RQ retains more detail for higher recall.

Index footprint for RQ1, RQ5, PQ96, PQ384 and SQ
Estimated index footprint across the tested quantization configurations.
Index construction time for RQ1, RQ5, PQ96, PQ384 and SQ
Index construction time across the tested quantization configurations.

From millions to billions

Ten million vectors is a starting point. As new images, documents, and embeddings arrive, the same table can grow to hundreds of millions, 10 billion vectors, and beyond. Efficient queries are only part of the challenge because the index also has to keep up as the table grows.

Keep indexing as the table grows

A first index build is only the beginning. LanceDB scales both the initial build and the work of keeping an index current.

Start with a parallel build. LanceDB distributes the initial indexing work across machines. Workers build different segments of your table at the same time, and LanceDB publishes the completed index together.

The table is divided among parallel workers, which build separate segments of one searchable index
Distributed architecture for the initial index build.

Then keep up with new data. Once your historical data is indexed, LanceDB adapts index maintenance to the size of each addition.

  • Small additions: LanceDB uses SPFresh to merge new data into the tail and rebalance its IVF partitions, helping maintain low tail latency and high recall as data arrives.
  • Larger additions: LanceDB builds multiple new segments in parallel across distributed workers, speeding up indexing for large batches.
  • A growing tail: LanceDB can replace it with two segments while keeping the rest of the index in place.
Small additions use SPFresh to merge data into the tail and balance IVF partitions for low tail latency and high recall; larger additions build multiple new segments in parallel; a growing tail splits into two segments
Incremental index maintenance paths for different update sizes.

For example, you can add a fresh batch of images to an existing table without routinely rebuilding all of its historical segments. LanceDB chooses the maintenance path based on the new batch and the existing index, and publishes completed changes together.

That gives teams a practical path from the first large import to the next day's updates and the next billion vectors.

10 billion vectors. Over 1,000 queries per second.

A growing table should leave room for a growing audience. LanceDB’s distributed search architecture puts multiple machines to work behind a single search experience.

For this test, we created the 10-billion-vector dataset by repeating the 10-million-vector dataset 1,000 times. Across these 10 billion 768-dimensional index entries, median response time was 18.05 ms, with 21.61 ms at p99.

10B × 768d latency distribution: p50 18.05 ms and p99 21.61 ms
Latency distribution for vector search across 10B × 768d index entries.

With nprobes=20, throughput reached 951 queries per second at 32 concurrent requests. Increasing concurrency to 256 raised throughput to 1,066 queries per second. Search runs across segments in parallel, and their candidates come together as one result.

This allows for the capacity to serve more searches as vector tables grow.

One table. Online and offline search.

An interactive search and an offline retrieval job can ask different things of the same table. LanceDB lets each request choose its balance of speed and precision through query-time controls, without rebuilding the index.

Choose precision when you query. On a five-bit RaBitQ index, fast scores candidates using one bit per dimension. That is one fifth of the stored code bits. The normal mode can use all five bits to calculate more accurate distances and improve recall.

More precision does not mean scoring every candidate with all five bits. RaBitQ first evaluates a one-bit distance lower bound to prune candidates that cannot improve the current results. Only the survivors need the additional four bits. Once the result threshold tightens, pruning can eliminate over 99% of candidates—so even normal can reject the vast majority using only the one-bit layer.

On the 10M × 768d workload, switching from fast to normal raised recall from 75.0% to 93.1% at the same search breadth, while both modes sustained approximately 1,700 QPS. This selective use of the extra bits motivates keeping the one-bit layer close to the CPU and placing the additional precision on a larger storage tier.

Match the storage tier to the workload. LanceDB Enterprise combines memory, local NVMe SSD, and object storage. Memory serves hot index data for responsive online queries. Local NVMe extends the working set for deeper searches and offline jobs. Object storage durably holds the complete table and indexes.

LanceDB uses memory for hot index data and real-time online queries, local NVMe SSD for larger working sets supporting high-precision and offline queries, and object storage for the full table and indexes
Tiered index placement across memory, local NVMe, and object storage.

To see the capacity trade-off, consider two illustrative placements of the code payload for 10B × 768d vectors:

Code placementRAM for codesLocal NVMe for codesTrade-off
All 5 bits in RAM4.80 TBKeep all scoring data immediately available
1 bit in RAM + 4 bits on NVMe0.96 TB3.84 TBUse less RAM and fetch extra precision for survivors

With candidate-selective fetching, the split layout would perform pruning in RAM and read the extra bits from NVMe only for survivors. It would not require a disk read for every candidate, and its code payload would need one fifth as much RAM.

Query-time precision and configurable memory/NVMe cache budgets give teams two ways to adapt search to the request, letting them spend scoring work on the quality needed while sizing the working set for the online or offline workload.

Build for your next workload.

Different search and retrieval workloads do not all need the same balance of speed and precision. LanceDB lets each request choose the supported scoring mode and search breadth that fit its needs, while configurable cache budgets help the deployment fit the workload.

For applications that prioritize retrieval quality, build a RaBitQ index with up to 9 bits per dimension. The additional bits preserve more detail in the compressed representation for high-precision search. Query-time controls then let you choose between faster scoring and the higher-fidelity paths supported by that index.

That flexibility carries forward as your application grows, supporting responsive online queries, deeper offline searches, and distributed and incremental indexing that keeps new data searchable.

Start with the table you have today. LanceDB gives you room to grow.

Yang Cen
Software Engineer @ LanceDB

A Practical LLM Pretraining Pipeline with LanceDB

Ayush Chaurasia
September 14, 2026
practical-llm-pretraining

Turning Fleet Data Into Better Models: The Data Mining Challenge in Physical AI

Lei Xu
September 1, 2026
data-mining-challenge-in-physical-ai

🎤 Reverie, Nov 5, ⚡ ML Data Loading Performance Guide, 🧠 CrewAI Cognitive Memory on LanceDB

ChanChan Mao
September 8, 2026
newsletter-august-2026