Storage V3Compatible with Milvus 3.0.x

Overview

AI datasets often evolve after a collection is created. As models and workflows change, teams may need to add text, generate new vector fields for existing entities, or use data stored outside Milvus. Supporting these workflows requires a storage model that can evolve with the dataset.

Storage V3 provides this model in Milvus 3.0. It uses a versioned storage layout to incorporate data added or rewritten over time, while applications continue to access collections through the same Milvus APIs.

Storage V3 is disabled by default. After common.storage.useLoonFFI takes effect, new writes and compaction output use Storage V3. Existing data remains in its current layout until eligible data is rewritten by background compaction. Milvus can read both layouts during this transition. Enable Storage V3 to use features that depend on it, rather than as a general performance optimization.

Features that require Storage V3

FeatureDescriptionRequired configuration
TEXT fieldStore long source text, such as passages, documents, tickets, or logs, without setting a fixed maximum length in the collection schema.common.storage.useLoonFFI=true
Function-generated vector fieldsAdd a BM25 or MinHash Function to an existing collection so Milvus generates a new vector field from an existing VARCHAR field. Milvus backfills the generated values for existing entities asynchronously through background compaction.
External collectionsQuery data stored outside Milvus without copying it into a managed collection. Refresh the external collection when the source data changes. To expose additional source fields, see Alter External Collection Schema.common.storage.useLoonFFI=true

Before you enable Storage V3

Once Milvus writes data in Storage V3, downgrading to a Milvus version that cannot read Storage V3 is not supported. Disabling Storage V3 later does not immediately convert all existing Storage V3 data or restore compatibility with the older version.

Before enabling Storage V3, consider the following data behavior:

  • Because dataCoord.compaction.storageVersion.enabled is enabled by default, eligible existing data can transition to Storage V3 gradually through background compaction.
  • Disabling Storage V3 changes the target storage version for future writes and eligible compaction output. It does not synchronously convert all existing Storage V3 data or make a version downgrade safe.

Enable Storage V3

Set common.storage.useLoonFFI to true in your Milvus configuration:

common:
  storage:
    useLoonFFI: true

Milvus treats this setting as refreshable. Apply the change through the configuration-update workflow supported by your deployment. Editing a static configuration file alone does not guarantee that the running deployment has received the new value.

If you plan to add a Function and its generated vector field to an existing collection, also enable the two compaction settings required for existing-data backfill:

dataCoord:
  compaction:
    bumpSchemaVersion:
      enabled: true
    storageVersion:
      enabled: true

The Function output for existing entities is generated asynchronously through background compaction. A successful schema update does not indicate that backfill has completed for every existing entity.

Try Managed Milvus for Free

Zilliz Cloud is hassle-free, powered by Milvus and 10x faster.

Get Started
Feedback

Was this page helpful?