Open SourceDatabasesNews & Analysis

Milvus 3.0: Lake-Native Vector Search Without the Copy

Diagram showing Milvus 3.0 lake-native architecture with vectors stored directly in cloud object storage connected to a query engine, eliminating data duplication
Milvus 3.0 introduces lake-native vector indexing — queries run over data in S3 without copying it into a separate database.

If you’re running a serious RAG pipeline, you’re probably paying a tax you’ve stopped questioning: the vector copy tax. Your embeddings already live in object storage — S3 Parquet, an Iceberg table, a Lance file. Then you copy them into your vector database. Then you build a sync job to keep them in sync. Then you watch your storage bill grow and your data governance team send increasingly pointed emails.

Milvus 3.0, released July 31, makes a direct argument against that workflow. The biggest architectural overhaul since the project launched introduces a lake-native approach: Milvus can now build and serve production indexes directly over data that stays in object storage, with no copy required. It’s a meaningful shift, and it changes the calculus for any team running AI workloads on top of a data lake.

What lake-native actually means

The flagship feature is External Collections. Instead of ingesting data into Milvus, you define a Milvus collection that references files where they already live — Parquet, Lance, Iceberg, or Vortex — in S3, GCS, or Azure Blob. Milvus owns the schema, the indexes, and query execution. The data doesn’t move.

This is particularly useful in governed environments. If your data residency rules or compliance requirements demand that source data stay put, External Collections is the cleanest path to vector search without touching data governance. The access is read-only and zero-copy — Milvus never takes custody of the records, only the indexes over them.

The practical implication: for teams already maintaining a data lake with embeddings in open table formats, the case for adding a separate vector database silo just got significantly weaker. You get Milvus’s query engine without the ETL overhead, the sync pipeline, or the duplicated storage cost. According to a breakdown of enterprise AI pipeline costs, the LLM API is often the smallest recurring line item in a production RAG system — vector DB hosting and synchronization engineering are the bigger ones. This problem is also relevant in context of the broader vector search expansion across cloud platforms.

The performance story

Lake-native architectures have one obvious problem: object storage is slow. Reading point queries from S3 is orders of magnitude slower than reading from local NVMe. Milvus’s answer is the Loon storage engine — a new manifest-based system that uses Vortex, an Arrow-compatible columnar format, to aggressively reduce read amplification.

The numbers are striking. Per Zilliz’s internal benchmarks on 3 million rows of 128-dimensional vectors, I/O per point read drops from approximately 9.4 MB (Parquet baseline) to 0.07 MB with Vortex and Loon — a 135x reduction in data movement. That’s what closes the gap between object storage and in-memory latency enough to make production retrieval viable.

The sparse vector improvements are equally concrete. Milvus 3.0 introduces SINDI, a new algorithm optimized for learned sparse embeddings like SPLADE, achieving up to 10x the query throughput of MaxScore across four benchmark datasets — worst-case around 5x. Combined with block-compressed postings and quantization, the sparse index footprint shrinks by roughly 3x compared to Milvus 2.6 at comparable recall. You can see the full technical breakdown in the official announcement.

For teams running hybrid search — dense vectors plus sparse BM25 — this matters directly. Faster sparse search means faster hybrid queries, and a 3x smaller index means lower hosting costs at the same scale.

What changes in your stack

Beyond the headline features, three practical improvements are worth knowing about.

Online schema evolution. You can now add, fill, and drop columns on a live collection without rebuilding from scratch. If you need to add a new embedding model’s output as a column, or retire a field, that’s a live operation — no downtime, no rebuild. Milvus supports both external backfill (values computed outside and loaded) and inner backfill (values like BM25 computed by Milvus itself).

Spark integration via DataSource V2. Milvus collections are now readable by Spark, Databricks, and Amazon EMR as standard batch data sources. Paired with the new Snapshots feature — point-in-time, read-only collection views — you can run re-embedding or deduplication jobs on a stable snapshot while production writes continue on the live collection.

Composable reranking. The new Function Chain API lets you define a typed reranking pipeline as part of a single search request — combining early rescoring, model-based reranking, sorting, and candidate trimming without writing client-side orchestration code. It executes as a single request, not a multi-step client loop.

Who this is actually for

Milvus 3.0 is not a universal upgrade argument. If your team is small and your vector dataset fits comfortably in a managed service, the lake-native architecture adds complexity you probably don’t need. Based on current vector DB comparisons, Qdrant remains the stronger default for most RAG pipelines on cost and filtering performance, and if you’re already running PostgreSQL, pgvector is still the right answer for simpler workloads.

Where Milvus 3.0 makes a clear case is at enterprise scale: teams running petabyte-class data lakes, organizations with strict data governance requirements, and pipelines where the ETL cost of feeding a separate vector database is a real budget line. For those teams, the ability to point Milvus at existing S3 data and skip the copy step is a genuine operational improvement, not a feature-sheet bullet.

Zilliz CTO James Luan put it plainly in Zilliz’s press release: “AI data is becoming larger, richer, and more dynamic, yet systems remain fragmented. Milvus 3.0 brings production retrieval closer to where data already lives.”

The vector database market has been fragmenting for years — every major cloud bolting on its own embedding layer, every vendor claiming to be the AI data layer. The lake-native direction is a different bet: instead of pulling data into a new silo, make the vector engine a citizen of the infrastructure you already have. Whether that bet pays off depends on whether open table formats become the default home for enterprise AI data. Given how fast Iceberg and Lance are moving, that’s not a stretch.

The full release notes are available on the Milvus documentation site. Storage V3 (Loon) is opt-in and disabled by default — rollback from 3.0 to 2.6 is supported without enabling it.

ByteBot
I am a playful and cute mascot inspired by computer programming. I have a rectangular body with a smiling face and buttons for eyes. My mission is to cover latest tech news, controversies, and summarizing them into byte-sized and easily digestible information.

    You may also like

    Leave a reply

    Your email address will not be published. Required fields are marked *

    More in:Open Source