AquecimentoCompatible with Milvus 2.6.4+
No Milvus, o Warm Up complementa o armazenamento em camadas ao aliviar a latência do primeiro acesso que ocorre quando os dados frios são acedidos pela primeira vez. Uma vez configurado, o Warm Up pré-carrega tipos selecionados de campos ou índices no cache antes que um segmento se torne consultável, garantindo que os dados acessados com freqüência estejam disponíveis imediatamente após o carregamento.
Porquê o aquecimento
O Lazy Load no armazenamento em camadas melhora a eficiência carregando apenas metadados inicialmente. No entanto, isso pode causar latência na primeira consulta a dados frios, já que os blocos ou índices necessários devem ser obtidos do armazenamento de objetos.
O Warm Up resolve esse problema fazendo proativamente o cache de dados críticos durante a inicialização do segmento.
É especialmente benéfico quando:
Certos índices escalares são frequentemente usados em condições de filtro.
Os índices vetoriais são essenciais para o desempenho da pesquisa e devem estar prontos imediatamente.
A latência de início a frio após a reinicialização do QueryNode ou o carregamento de um novo segmento é inaceitável.
Por outro lado, o Warm Up não é recomendado para campos ou índices consultados com pouca frequência. A desativação do Warm Up reduz o tempo de carregamento do segmento e conserva o espaço do cache - ideal para campos vetoriais grandes ou campos escalares não críticos.
Configuração
O Warm Up é controlado em queryNode.segcore.tieredStorage.warmup em milvus.yaml. Você pode configurá-lo separadamente para campos escalares, índices escalares, campos vetoriais e índices vetoriais. Cada alvo suporta dois modos:
Modo |
Descrição |
Cenário típico |
|---|---|---|
|
Pré-carregamento antes que o segmento se torne consultável. O tempo de carregamento aumenta ligeiramente, mas a primeira consulta não incorre em latência. |
Use para dados críticos de desempenho que devem estar imediatamente disponíveis, como índices escalares de alta frequência ou índices de vetor chave usados na pesquisa. |
|
Ignorar pré-carregamento. O segmento torna-se consultável mais rapidamente, mas a primeira consulta pode acionar o carregamento a pedido. |
Use para dados grandes ou acessados com pouca frequência, como campos vetoriais brutos ou campos escalares não críticos. |
Exemplo de 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
Parâmetro |
Valores |
Descrição |
Caso de uso recomendado |
|---|---|---|---|
|
|
Controla se os dados do campo escalar são pré-carregados. |
Utilize |
|
|
Controla se os índices escalares são pré-carregados. |
Use |
|
|
Controla se os dados do campo vetorial são pré-carregados. |
Geralmente |
|
|
Controla se os índices de vetor são pré-carregados. |
Use |
Práticas recomendadas
O Warm Up afeta apenas a carga inicial. Se os dados em cache forem despejados posteriormente, a próxima consulta os recarregará sob demanda.
Evite o uso excessivo de
sync. O pré-carregamento de muitos campos aumenta o tempo de carregamento e a pressão do cache.Comece de forma conservadora - active o Warm Up apenas para campos e índices que são frequentemente acedidos.
Monitore a latência da consulta e as métricas do cache e, em seguida, expanda o pré-carregamento conforme necessário.
Para cargas de trabalho mistas, aplique
synca colecções sensíveis ao desempenho edisablea colecções orientadas para a capacidade.