Elasticsearch - índices congelados
Os índices que são pesquisados com frequência são mantidos na memória porque leva tempo para reconstruí-los e ajudar em uma pesquisa eficiente. Por outro lado, pode haver índices que raramente acessamos. Esses índices não precisam ocupar a memória e podem ser reconstruídos quando necessário. Esses índices são conhecidos como índices congelados.
Elasticsearch constrói as estruturas de dados transitórios de cada fragmento de um índice congelado cada vez que esse fragmento é pesquisado e descarta essas estruturas de dados assim que a pesquisa é concluída. Como o Elasticsearch não mantém essas estruturas de dados transitórios na memória, os índices congelados consomem muito menos heap do que os índices normais. Isso permite uma proporção de disco para heap muito maior do que seria possível.
Exemplo para congelamento e descongelamento
O exemplo a seguir congela e descongela um índice -
POST /index_name/_freeze
POST /index_name/_unfreeze
As pesquisas em índices congelados devem ser executadas lentamente. Os índices congelados não se destinam a uma alta carga de pesquisa. É possível que uma pesquisa de um índice congelado leve segundos ou minutos para ser concluída, mesmo se as mesmas pesquisas foram concluídas em milissegundos quando os índices não foram congelados.
Pesquisando um índice congelado
O número de índices congelados carregados simultaneamente por nó é limitado pelo número de threads no pool de threads search_throttled, que é 1 por padrão. Para incluir índices congelados, uma solicitação de pesquisa deve ser executada com o parâmetro de consulta - ignore_throttled = false.
GET /index_name/_search?q=user:tpoint&ignore_throttled=false
Monitorando Índices de Congelamento
Índices congelados são índices comuns que usam otimização de pesquisa e uma implementação de shard com eficiência de memória.
GET /_cat/indices/index_name?v&h=i,sth