RiscaldareCompatible with Milvus 2.6.4+
In Milvus, Warm Up integra il Tiered Storage alleviando la latenza di primo impatto che si verifica quando si accede per la prima volta ai dati freddi. Una volta configurato, Warm Up precarica nella cache tipi selezionati di campi o indici prima che un segmento diventi interrogabile, assicurando che i dati a cui si accede di frequente siano disponibili subito dopo il caricamento.
Perché il warm up
Lazy Load in Tiered Storage migliora l'efficienza caricando inizialmente solo i metadati. Tuttavia, ciò può causare latenza alla prima query sui dati freddi, poiché i chunk o gli indici necessari devono essere recuperati dallo storage degli oggetti.
Warm Up risolve questo problema mettendo nella cache in modo proattivo i dati critici durante l'inizializzazione del segmento.
È particolarmente utile quando:
Alcuni indici scalari sono usati frequentemente nelle condizioni di filtro.
Gli indici vettoriali sono essenziali per le prestazioni di ricerca e devono essere pronti immediatamente.
La latenza di avvio a freddo dopo il riavvio del QueryNode o il caricamento di un nuovo segmento è inaccettabile.
Al contrario, il Warm Up non è consigliato per i campi o gli indici interrogati di rado. Disattivare il Warm Up riduce il tempo di caricamento del segmento e conserva lo spazio nella cache, ideale per i campi vettoriali di grandi dimensioni o per i campi scalari non critici.
Configurazione
Il Warm Up è controllato da queryNode.segcore.tieredStorage.warmup in milvus.yaml. È possibile configurarlo separatamente per campi scalari, indici scalari, campi vettoriali e indici vettoriali. Ogni target supporta due modalità :
Modalità |
Descrizione |
Scenario tipico |
|---|---|---|
|
Precarico prima che il segmento sia interrogabile. Il tempo di caricamento aumenta leggermente, ma la prima query non comporta latenza. |
Da usare per i dati critici per le prestazioni che devono essere immediatamente disponibili, come gli indici scalari ad alta frequenza o gli indici vettoriali chiave usati nella ricerca. |
|
Saltare il precaricamento. Il segmento diventa interrogabile più rapidamente, ma la prima query può attivare il caricamento su richiesta. |
Da usare per i dati a cui si accede di rado o di grandi dimensioni, come i campi vettoriali grezzi o i campi scalari non critici. |
Esempio di YAML:
queryNode:
segcore:
tieredStorage:
warmup:
# options: sync, disable.
# Specifies the timing for warming up the Tiered Storage cache.
# - `sync`: data will be loaded into the cache before a segment is considered loaded.
# - `disable`: data will not be proactively loaded into the cache, and loaded only if needed by search/query tasks.
# Defaults to `sync`, except for vector field which defaults to `disable`.
scalarField: sync
scalarIndex: sync
vectorField: disable # cache warmup for vector field raw data is by default disabled.
vectorIndex: sync
Parametro |
Valori |
Descrizione |
Caso d'uso consigliato |
|---|---|---|---|
|
|
Controlla se i dati dei campi scalari sono precaricati. |
Utilizzare |
|
|
Controlla se gli indici scalari sono precaricati. |
Usare |
|
|
Controlla se i dati dei campi vettoriali sono precaricati. |
Generalmente |
|
|
Controlla se gli indici dei vettori sono precaricati. |
Usare |
Pratiche ottimali
Il Warm Up influisce solo sul carico iniziale. Se i dati nella cache vengono successivamente eliminati, la query successiva li ricaricherà su richiesta.
Evitare l'uso eccessivo di
sync. Il precaricamento di troppi campi aumenta il tempo di caricamento e la pressione sulla cache.Iniziare in modo conservativo: attivare il Warm Up solo per i campi e gli indici a cui si accede di frequente.
Monitorare la latenza delle query e le metriche della cache, quindi espandere il precaricamento se necessario.
Per i carichi di lavoro misti, applicare
syncalle collezioni sensibili alle prestazioni edisablea quelle orientate alla capacità .