Note di rilascio
Scoprite le novità di Milvus! Questa pagina riassume le nuove funzionalità , i miglioramenti, i problemi noti e le correzioni di bug di ogni versione. In questa sezione è possibile trovare le note di rilascio per ogni versione successiva alla v2.5.0. Si consiglia di visitare regolarmente questa pagina per conoscere gli aggiornamenti.
v2.5.4
Data di rilascio: 23 gennaio 2025
Versione Milvus | Versione dell'SDK Python | Versione dell'SDK Node.js | Versione SDK Java |
---|---|---|---|
2.5.4 | 2.5.4 | 2.5.4 | 2.5.4 |
Siamo lieti di annunciare il rilascio di Milvus 2.5.4, che introduce ottimizzazioni chiave delle prestazioni e nuove funzionalità come l'isolamento della PartitionKey, l'indice Sparse con DAAT MaxScore e meccanismi di blocco migliorati. Questa versione risolve anche diversi bug che migliorano la stabilità e l'affidabilità generale. Vi invitiamo ad aggiornare o a provare quest'ultima versione e siamo ansiosi di ricevere il vostro feedback per aiutarci a migliorare continuamente Milvus!
Caratteristiche
- Supporta l'isolamento delle chiavi di partizione per migliorare le prestazioni con chiavi di partizione multiple(#39245). Per ulteriori informazioni, fare riferimento a Utilizzare la chiave di partizione.
- Sparse Index ora supporta DAAT MaxScore knowhere/#1015. Per ulteriori informazioni, fare riferimento a Vettore sparso.
- Aggiunge il supporto per
is_null
nelle espressioni(#38931). - I privilegi di root possono essere personalizzati (#39324).
Miglioramenti
- Informazioni delta dei segmenti in cache per accelerare il Query Coordinator(#39349)
- Lettura simultanea dei metadati a livello di collezione per accelerare il recupero dei guasti (#38900)
- Raffinata granularità dei lock in QueryNode(#39282),(#38907)
- Unificato lo stile usando CStatus per gestire le chiamate CGO a NewCollection(#39303)
- Saltata la generazione del limitatore di partizione se non è impostata alcuna partizione(#38911)
- Aggiunto un maggiore supporto alle API RESTful(#38875)(#39425)
- Rimossi i filtri Bloom non necessari in QueryNode e DataNode per ridurre l'uso della memoria(#38913)
- Velocizzato il caricamento dei dati accelerando la generazione, la pianificazione e l'esecuzione dei task in QueryCoord(#38905)
- Ridotto il blocco in DataCoord per velocizzare le operazioni di caricamento e inserimento(#38904)
- Aggiunti i nomi dei campi primari in
SearchResult
eQueryResults
(#39222) - Usato sia la dimensione del binlog che la dimensione dell'indice come standard di limitazione della quota disco (#38844)
- Ottimizzato l'uso della memoria per la ricerca full-text knowhere/#1011
- Aggiunto il controllo di versione per gli indici scalari(#39236)
- Migliorata la velocità di recupero delle informazioni sulle raccolte da RootCoord evitando copie non necessarie(#38902)
Correzioni di bug
- Corretti i problemi di lentezza delle query causati dalla granularità grossolana dei lock durante il caricamento di più colonne(#39255)
- Corretto un problema per cui l'uso di alias poteva causare l'attraversamento di un iteratore nel database sbagliato(#39248)
- Corretti gli errori di ricerca per le chiavi primarie con indici(#39390)
- Corretto un problema di potenziale perdita di dati causato dal riavvio di MixCoord e dal flushing simultaneo(#39422)
- Corretto un errore di aggiornamento del gruppo di risorse quando si modifica il database(#39356)
- Corretto un problema sporadico per cui l'indice tantivy non poteva cancellare i file dell'indice durante il rilascio(#39434)
- Corretto un errore di cancellazione innescato da una concomitanza impropria tra le attività di stats e la compattazione L0 dopo i riavvii di MixCoord(#39460)
- Corretta l'indicizzazione lenta causata da un numero eccessivo di thread(#39341)
- Risolto un problema che impediva di saltare i controlli della quota disco durante l'importazione in blocco (#39319)
- Risolti i problemi di freeze causati da un numero eccessivo di consumatori di code di messaggi limitando la concurrency(#38915)
- Risolti i timeout delle query causati dai riavvii di MixCoord durante le compattazioni su larga scala(#38926)
- Corretta l'incompatibilità degli indici scalari invertiti durante l'aggiornamento da 2.4 a 2.5(#39272)
- Risolti i problemi di sbilanciamento dei canali causati dai tempi di inattività dei nodi(#39200)
- Corretto un problema che poteva causare il blocco del bilanciamento dei canali.(#39160)
- Corretto un problema per cui i controlli dei livelli di privilegio dei gruppi personalizzati RBAC diventavano inefficaci(#39224)
- Corretto un errore nel recupero del numero di righe in indici vuoti(#39210)
- Corretta la stima errata della memoria per i segmenti piccoli(#38909)
v2.5.3
Data di rilascio: 13 gennaio 2025
Versione Milvus | Versione SDK Python | Versione dell'SDK Node.js | Versione SDK Java |
---|---|---|---|
2.5.3 | 2.5.3 | 2.5.3 | 2.5.4 |
Milvus 2.5.3 fornisce correzioni di bug critici e miglioramenti delle prestazioni per migliorare la stabilità , l'affidabilità e l'usabilità complessive. Questa versione perfeziona la gestione della concorrenza, rafforza l'indicizzazione e il recupero dei dati e aggiorna diversi componenti chiave per un'esperienza utente più solida.
Correzioni di bug
- Corretto un problema per cui l'uso di un filtro
IN
su una chiave primariaVARCHAR
poteva restituire risultati vuoti.(#39108) - Corretto un problema di concorrenza tra le operazioni di query e di cancellazione che poteva portare a risultati errati.(#39054)
- Corretto un errore causato dal filtraggio iterativo quando un
expr
era vuoto in una richiesta di query.(#39034) - Corretto un problema per cui un errore del disco durante l'aggiornamento della configurazione portava all'uso delle impostazioni predefinite.(#39072)
- Corretta una potenziale perdita di dati cancellati a causa della compattazione del cluster.(#39133)
- Corretta una query di corrispondenza del testo interrotta nei segmenti di dati in crescita.(#39113)
- Corretti gli errori di recupero causati dal fatto che l'indice non contiene i dati originali per i vettori sparsi.(#39146)
- Corretta una possibile condizione di gara tra campi di colonne causata dalla concomitanza di query e caricamento dei dati.(#39152)
- Corretti gli errori di inserimento in blocco quando i campi nullable o default_value non erano inclusi nei dati.(#39111)
Miglioramenti
- Aggiunta un'API per i gruppi di risorse per l'interfaccia RESTful.(#39092)
- Ottimizzate le prestazioni di recupero sfruttando i metodi SIMD del bitset.(#39041)
- Utilizzato il timestamp MVCC come timestamp di garanzia quando specificato.(#39019)
- Aggiunte le metriche di cancellazione mancanti.(#38747)
- Aggiornato Etcd alla versione v3.5.16.(#38969)
- Creato un nuovo pacchetto Go per gestire i prototipi.(#39128)
v2.5.2
Data di rilascio: 3 gennaio 2025
Versione Milvus | Versione dell'SDK Python | Versione dell'SDK Node.js | Versione SDK Java |
---|---|---|---|
2.5.2 | 2.5.3 | 2.5.3 | 2.5.3 |
Milvus 2.5.2 supporta la modifica della lunghezza massima delle colonne VARCHAR e risolve diversi problemi critici relativi alla concorrenza, alle cadute delle partizioni e alla gestione delle statistiche BM25 durante l'importazione. Si consiglia vivamente di passare a questa versione per migliorare la stabilità e le prestazioni.
Miglioramenti
- Generazione di registri di utilizzo del disco solo quando il percorso specificato non esiste.(#38822)
- Aggiunto un parametro per regolare la lunghezza massima di VARCHAR e ripristinato il limite a 65.535.(#38883)
- Supportata la conversione del tipo di parametro per le espressioni.(#38782)
Correzioni di bug
- Corretti potenziali deadlock in scenari di concorrenza.(#38863)
- Generato il file index_null_offset solo per i campi che supportano valori nulli.(#38834)
- Corretto l'utilizzo del piano di recupero dopo il free nella fase di riduzione.(#38841)
- Riconosciute le espressioni con AND e OR maiuscoli.(#38928)
- Consentito l'abbandono della partizione anche se il caricamento non è riuscito.(#38874)
- Corretti i problemi di registrazione del file BM25 durante l'importazione.(#38881)
v2.5.1
Data di rilascio: 26 dicembre 2024
Versione Milvus | Versione dell'SDK Python | Versione dell'SDK Node.js | Versione SDK Java |
---|---|---|---|
2.5.1 | 2.5.2 | 2.5.2 | 2.5.2 |
Milvus 2.5.1 si concentra su una serie di correzioni di bug che riguardano il caricamento della memoria, gli elenchi RBAC, il bilanciamento dei nodi delle query e l'indicizzazione dei segmenti sigillati, oltre a migliorare l'interfaccia web e gli intercettori. Si consiglia vivamente di aggiornare alla versione 2.5.1 per migliorare la stabilità e l'affidabilità .
Miglioramenti
- Aggiornamento delle pagine di raccolta e di query dell'interfaccia web.(#38701)
Correzioni di bug
- Risolti i problemi di OOM aggiungendo un fattore di memoria alle stime di caricamento.(#38722)
- Corretta l'espansione dei gruppi di privilegi quando si elencano le politiche in RootCoord.(#38760)
- Corretti i problemi con l'elenco dei gruppi di privilegi e delle raccolte.(#38738)
- Corretto il bilanciatore per evitare di sovraccaricare ripetutamente lo stesso nodo di query.(#38724)
- Corretti i compiti di bilanciamento inattesi attivati dopo il riavvio di QueryCoord.(#38725)
- Corretto l'aggiornamento della configurazione del carico che non si applica al caricamento delle raccolte.(#38737)
- Corretto il conteggio di zero letture durante l'importazione dei dati.(#38695)
- Corretta la decodifica Unicode per le chiavi JSON nelle espressioni.(#38653)
- Corretto il nome del DB dell'intercettore per alterCollectionField in 2.5. (#38663)
- Corretti i parametri dell'indice vuoti per i segmenti sigillati quando si usa la ricerca brute force di BM25.(#38752)
v2.5.0
Data di rilascio: 23 dicembre 2024
Versione Milvus | Versione dell'SDK Python | Versione dell'SDK Node.js | Versione SDK Java |
---|---|---|---|
2.5.0 | 2.5.1 | 2.5.2 | 2.5.2 |
Milvus 2.5.0 apporta significativi miglioramenti per migliorare l'usabilità , la scalabilità e le prestazioni per gli utenti che si occupano di ricerca vettoriale e di gestione di dati su larga scala. Con questa versione, Milvus integra nuove potenti funzionalità come la ricerca basata sui termini, la compattazione dei cluster per ottimizzare le query e il supporto versatile per i metodi di ricerca vettoriale rada e densa. I miglioramenti nella gestione dei cluster, nell'indicizzazione e nella gestione dei dati introducono nuovi livelli di flessibilità e facilità d'uso, rendendo Milvus un database vettoriale ancora più robusto e facile da usare.
Caratteristiche principali
Ricerca a testo pieno
Milvus 2.5 supporta la ricerca full text implementata con Sparse-BM25! Questa funzione è un importante complemento alle forti capacità di ricerca semantica di Milvus, soprattutto in scenari che coinvolgono parole rare o termini tecnici. Nelle versioni precedenti, Milvus supportava vettori sparsi per aiutare gli scenari di ricerca per parole chiave. Questi vettori sparsi venivano generati al di fuori di Milvus da modelli neurali come SPLADEv2/BGE-M3 o da modelli statistici come l'algoritmo BM25.
Grazie a Tantivy, Milvus 2.5 dispone di analizzatori integrati e di estrazione di vettori sparsi, estendendo l'API dalla ricezione di soli vettori come input all'accettazione diretta di testo. Le informazioni statistiche del BM25 vengono aggiornate in tempo reale durante l'inserimento dei dati, migliorando l'usabilità e l'accuratezza. Inoltre, i vettori sparsi basati su algoritmi di prossimità approssimata (ANN) offrono prestazioni più potenti rispetto ai sistemi di ricerca per parole chiave standard.
Per maggiori dettagli, consultare la Panoramica dell'analizzatore e la Ricerca a testo completo.
WebUI di gestione dei cluster (Beta)
Per supportare al meglio i dati massivi e le funzionalità più ricche, il sofisticato design di Milvus include varie dipendenze, numerosi ruoli dei nodi, strutture di dati complesse e altro ancora. Questi aspetti possono rappresentare una sfida per l'utilizzo e la manutenzione.
Milvus 2.5 introduce una WebUI integrata per la gestione dei cluster, che riduce le difficoltà di manutenzione del sistema visualizzando le complesse informazioni dell'ambiente di runtime di Milvus. Queste includono dettagli su database e collezioni, segmenti, canali, dipendenze, stato di salute dei nodi, informazioni sui task, query lente e altro ancora.
Per maggiori dettagli, consultare Milvus WebUI.
Corrispondenza del testo
Milvus 2.5 sfrutta gli analizzatori e l'indicizzazione di Tantivy per la preelaborazione del testo e la creazione di indici, supportando una precisa corrispondenza in linguaggio naturale dei dati di testo in base a termini specifici. Questa funzione è utilizzata principalmente per la ricerca filtrata per soddisfare condizioni specifiche e può incorporare un filtro scalare per affinare i risultati delle query, consentendo la ricerca di similarità all'interno di vettori che soddisfano criteri scalari.
Per ulteriori informazioni, consultare Panoramica dell'analizzatore e Corrispondenza testo.
Indice Bitmap
Alla famiglia Milvus è stato aggiunto un nuovo indice di dati scalari. L'indice BitMap utilizza un array di bit, di lunghezza pari al numero di righe, per rappresentare l'esistenza di valori e accelerare le ricerche.
Gli indici Bitmap sono stati tradizionalmente efficaci per i campi a bassa cardinalità , che hanno un numero modesto di valori distinti, ad esempio una colonna contenente informazioni sul sesso con solo due valori possibili: maschio e femmina.
Per maggiori dettagli, vedere Indice bitmap.
Nullable e valore predefinito
Milvus supporta ora l'impostazione di proprietà nullable e di valori predefiniti per campi scalari diversi da quello della chiave primaria. Per i campi scalari contrassegnati come nullable=True
, gli utenti possono omettere il campo durante l'inserimento dei dati; il sistema lo tratterà come valore nullo o valore predefinito (se impostato) senza lanciare un errore.
I valori predefiniti e le proprietà annullabili offrono a Milvus una maggiore flessibilità . Gli utenti possono utilizzare questa funzione per i campi con valori incerti durante la creazione di collezioni. Inoltre, semplificano la migrazione dei dati da altri sistemi di database a Milvus, consentendo di gestire insiemi di dati contenenti valori nulli conservando le impostazioni originali dei valori predefiniti.
Per maggiori dettagli, consultare Nullable & Default Value.
HNSW SQ/PQ/PRQ basato su Faiss
Grazie alla stretta collaborazione con la comunità di Faiss, l'algoritmo HNSW di Faiss è stato notevolmente migliorato sia in termini di funzionalità che di prestazioni. Per motivi di stabilità e manutenibilità , Milvus 2.5 ha ufficialmente migrato il supporto per HNSW da hnswlib a Faiss.
Basato su Faiss, Milvus 2.5 supporta diversi metodi di quantizzazione su HNSW per soddisfare le esigenze di diversi scenari: SQ (Scalar Quantizers), PQ (Product Quantizer) e PRQ (Product Residual Quantizer). SQ e PQ sono più comuni; SQ offre buone prestazioni di interrogazione e velocità di costruzione, mentre PQ offre un richiamo migliore a parità di rapporto di compressione. Molti database vettoriali utilizzano comunemente la quantizzazione binaria, che è una forma semplice di quantizzazione SQ.
PRQ è una fusione di PQ e AQ (Additive Quantizer). Rispetto a PQ, richiede tempi di costruzione più lunghi per offrire un richiamo migliore, soprattutto a tassi di compressione elevati, come la compressione binaria.
Compattazione dei cluster (Beta)
Milvus 2.5 introduce la Clustering Compaction per accelerare le ricerche e ridurre i costi di grandi collezioni. Specificando un campo scalare come chiave di clustering, i dati vengono ridistribuiti per intervallo per ottimizzare la memorizzazione e il recupero. Agendo come un indice globale, questa funzione consente a Milvus di sfrondare in modo efficiente i dati durante le query basate sui metadati di clustering, migliorando le prestazioni di ricerca quando vengono applicati filtri scalari.
Per ulteriori informazioni, consultare la sezione Compattazione del clustering.
Altre caratteristiche
Nodo di streaming (Beta)
Milvus 2.5 introduce un nuovo componente chiamato nodo di streaming, che fornisce servizi di Write-Ahead Logging (WAL). Ciò consente a Milvus di ottenere il consenso prima e dopo la lettura e la scrittura dei canali, sbloccando nuove caratteristiche, funzionalità e ottimizzazioni. Questa funzione è disabilitata per impostazione predefinita in Milvus 2.5 e sarà ufficialmente disponibile nella versione 3.0.
Supporto IPv6
Milvus supporta ora IPv6, consentendo una maggiore connettività e compatibilità di rete.
Importazione massiva CSV
Oltre ai formati JSON e Parquet, Milvus supporta ora l'importazione diretta di dati in massa in formato CSV.
Modelli di espressione per l'accelerazione delle query
Milvus supporta ora i modelli di espressione, migliorando l'efficienza dell'analisi delle espressioni, in particolare in scenari con espressioni complesse.
Per maggiori dettagli, consultate la sezione Templatura dei filtri.
Miglioramenti di GroupBy
- Dimensione del gruppo personalizzabile: Aggiunto il supporto per specificare il numero di voci restituite per ogni gruppo.
- Ricerca ibrida GroupBy: Supporta la ricerca ibrida GroupBy basata su più colonne vettoriali.
Miglioramenti all'iteratore
- Supporto MVCC: Gli utenti possono ora usare gli iteratori senza essere influenzati da successive modifiche dei dati, come inserimenti e cancellazioni, grazie al Multi-Version Concurrency Control (MVCC).
- Cursore persistente: Milvus supporta ora un cursore persistente per QueryIterator, consentendo agli utenti di riprendere l'iterazione dall'ultima posizione dopo un riavvio di Milvus senza dover riavviare l'intero processo di iterazione.
Miglioramenti
Ottimizzazione della cancellazione
Migliorata la velocità e ridotto l'uso della memoria per le cancellazioni su larga scala, ottimizzando l'uso dei blocchi e la gestione della memoria.
Aggiornamento delle dipendenze
Aggiornamento a ETCD 3.5.16 e Pulsar 3.0.7 LTS, con correzione delle CVE esistenti e miglioramento della sicurezza. Nota: L'aggiornamento a Pulsar 3.x non è compatibile con le precedenti versioni 2.x.
Per gli utenti che hanno già una distribuzione Milvus funzionante, è necessario aggiornare i componenti ETCD e Pulsar prima di poter utilizzare le nuove caratteristiche e funzioni. Per ulteriori informazioni, consultare Aggiornamento di Pulsar da 2.x a 3.x.
Archiviazione locale V2
Introdotto un nuovo formato di file locale in Milvus 2.5, che migliora l'efficienza del caricamento e delle query per i dati scalari, riduce l'overhead della memoria e getta le basi per le ottimizzazioni future.
Ottimizzazione del parsing delle espressioni
Migliorato il parsing delle espressioni implementando la cache per le espressioni ripetute, aggiornando ANTLR e ottimizzando le prestazioni delle clausole NOT IN
.
Miglioramento delle prestazioni di concomitanza del DDL
Ottimizzate le prestazioni di concorrenza delle operazioni del Data Definition Language (DDL).
Allineamento delle funzionalità dell'API RESTful
Allineate le funzionalità dell'API RESTful con gli altri SDK per coerenza.
Aggiornamenti di sicurezza e configurazione
Supportato TLS per proteggere la comunicazione tra i nodi in ambienti più complessi o aziendali. Per i dettagli, consultare la sezione Configurazione della sicurezza.
Miglioramenti delle prestazioni di compattazione
Eliminati i limiti massimi di segmento nella compattazione mista e ora viene data priorità ai segmenti più piccoli, migliorando l'efficienza e accelerando le query su insiemi di dati grandi o frammentati.
Bilanciamento dei canali basato sui punteggi
Introdotto un criterio che bilancia dinamicamente i carichi tra i canali, migliorando l'utilizzo delle risorse e la stabilità complessiva nelle distribuzioni su larga scala.