Roadmap di Milvus
🌌 Verso il database multimodale di nuova generazione e Vector Lakebase
Roadmap del prodotto Milvus
Benvenuti nella roadmap di Milvus!
Stiamo accompagnando Milvus verso una nuova era: quella del database multimodale di nuova generazione, che spazia dai dati strutturati a quelli non strutturati, dal recupero in tempo reale all’analisi offline, dalle prestazioni su singolo cluster a un’architettura globale di Vector Lakebase.
Questa roadmap delinea gli obiettivi principali per Milvus v3.0 (beta pubblica) e Milvus v3.1 (sviluppo a lungo termine), insieme al piano di evoluzione per Zilliz Vector Lakebase.
🌠 Milvus v3.0 (beta pubblica)
Beta pubblica: maggio 2026
Obiettivo: Realizzazione di un motore di query semantico nativo con ordinamento, aggregazione e recupero multivettoriale integrati nel motore stesso, nonché delle fondamenta native del lake di Zilliz Vector Lakebase, affinché l’elaborazione raggiunga i dati senza necessità di migrazione.
🎯 Punti salienti
🔹 Evoluzione dello schema e dei tipi di dati
- Supporta i comandi ALTER COLLECTION ADD COLUMN e DROP COLUMN in fase di esecuzione senza ricostruire gli indici né interrompere il servizio.
- Fornisce due percorsi di backfill per le nuove colonne: esterno tramite Spark Connector e interno con vettori sparsi BM25 generati automaticamente al momento della scrittura.
- Introduzione di TEXT come tipo di dati di prima classe che memorizza il testo originale insieme ai vettori, con supporto per BM25 e la corrispondenza testuale.
🔹 Riorganizzazione dell’esecuzione delle query
- Integrazione di ` ORDER BY ` nel motore con ordinamento per segmento e ordinamento con fusione tra i nodi di query.
- Aggiungere l’aggregazione delle query in stile SQL (GROUP BY con COUNT, SUM, AVG, MIN, MAX) calcolata nel kernel.
- Introdurre filtri di ricerca sui risultati ANN con statistiche per bucket e sottofiltri annidati lato server.
- Supporto per dizionari personalizzati e tabelle di sinonimi registrati a livello di cluster per migliorare il recall per i caratteri CJK e per domini specifici.
🔹 Supporto per vettori multipli e interazione tardiva
- Introdurre StructList per rappresentare un'entità come una singola riga con molti vettori, con supporto nativo per l'interazione tardiva (ColBERT, ColPali) tramite MAX_SIM.
- Supporto della ricerca a livello di elemento e di entità sui campi StructList, con politiche di corrispondenza configurabili per i risultati a livello di entità.
- Aggiunte tre strategie di recupero multi-vettoriale: TokenANN (esaustiva), Muvera (basata su proiezione, senza addestramento) e Lemur (compressione appresa).
🔹 Revisione del recupero e dell’indice
- Riorganizzazione dell’indice invertito sparso con compressione a blocchi, quantizzazione dei pesi e un formato persistente; introduzione di SINDI come algoritmo IP sparso predefinito.
- Ampliamento della copertura dell’indice con l’intera famiglia Faiss (SVS, Panorama, PQ, IVFPQ, ScaNN) e MinHash DIDO per il rilevamento di quasi-duplicati.
- Supporto dei campi vettoriali nullabili per gli embedding asincroni e le modalità mancanti, con filtraggio automatico in fase di ricerca.
🔹 Architettura di archiviazione e calcolo vettoriale di Lakebase
- Introduzione di External Collection per indicizzare ed eseguire query sui dati in S3 / GCS / Azure in loco, con supporto per i formati di tabella Lance, Parquet, Iceberg e Vortex.
- Aggiunta di Vortex, un formato colonnare aperto, e di Loon (Storage V3), un livello di archiviazione a formato misto per letture puntuali efficienti dall’object storage.
- Supporto di snapshot puntuali con isolamento in stile MVCC per l’elaborazione in batch mentre il servizio continua a scrivere.
- Integrazione come Spark DataSource v2 per la lettura e la scrittura su Milvus direttamente nelle pipeline Spark / Databricks / EMR.
🪐 Milvus v3.1 (Visione a lungo termine)
Tempistica: fine 2026 e oltre
Obiettivi: intelligenza dello storage, integrità del percorso di scrittura, estensibilità di calcolo e maggiore interoperabilità con Vector Lakebase.
🎯 Punti salienti
🔹 Archiviazione e percorso di scrittura
- Aggiunta del pushdown dei predicati con potatura dell’indice delle pagine e del filtro Bloom a livello di archiviazione.
- Implementazione della deduplicazione della chiave primaria in fase di acquisizione per prevenire i duplicati in fase di scrittura.
🔹 Elaborazione ed elasticità
- Supporto delle funzioni definite dall'utente (UDF) per l'esecuzione di logiche personalizzate nel motore, sul piano dati.
- Abilitare la suddivisione degli shard per ridistribuire gli shard man mano che i dati crescono, con supporto per chiavi di sharding personalizzate.
🔹 Espansione di Spark e Vector Lakebase
- Ampliare il connettore Spark con una libreria più ricca di operatori batch nativi.
- Aggiunta di funzionalità relative al formato delle tabelle, tra cui time-travel, evoluzione dello schema e rollback degli snapshot.
- Ampliare l’interoperabilità di Vector Lakebase con indici esterni aggiornati tramite CDC, supporto per Apache Paimon e formati di dati aggiuntivi.
🤝 Costruire insieme il futuro di Milvus
Milvus è un progetto open source guidato da una comunità globale di sviluppatori. Invitiamo tutti i membri della comunità a contribuire a plasmare il database multimodale di nuova generazione:
💬 Condividi il tuo feedback: proponi nuove funzionalità o idee di ottimizzazione su GitHub Discussions.
🐛 Segnalate i problemi: segnalate i bug tramite GitHub Issues.
🔧 Contribuite con il codice: inviate pull request e aiutateci a sviluppare le funzionalità principali.
- Pull request: contribuisci direttamente al nostro codice. Che si tratti di correggere bug, aggiungere funzionalità o migliorare la documentazione, i tuoi contributi sono ben accetti.
- Guida allo sviluppo: consulta la nostra Guida per i contributori per le linee guida sui contributi al codice.
🗣️ Partecipa alla conversazione: fai domande e incontra i manutentori su Discord, durante gli "Office Hours" di Milvus o su tutti i canali della community.
⭐ Diffondi la notizia: condividi le migliori pratiche e le storie di successo e segui Milvus su X, LinkedIn e YouTube.
👉 GitHub: milvus-io/milvus