Elasticsearch: índices congelados
Los índices que se buscan con frecuencia se guardan en la memoria porque se necesita tiempo para reconstruirlos y ayudar en una búsqueda eficiente. Por otro lado, puede haber índices a los que rara vez accedemos. Esos índices no necesitan ocupar la memoria y se pueden reconstruir cuando se necesiten. Estos índices se conocen como índices congelados.
Elasticsearch crea las estructuras de datos transitorias de cada fragmento de un índice congelado cada vez que se busca ese fragmento y descarta estas estructuras de datos tan pronto como se completa la búsqueda. Debido a que Elasticsearch no mantiene estas estructuras de datos transitorias en la memoria, los índices congelados consumen mucho menos montón que los índices normales. Esto permite una proporción de disco a montón mucho más alta de lo que sería posible de otro modo.
Ejemplo de congelación y descongelación
El siguiente ejemplo congela y descongela un índice:
POST /index_name/_freeze
POST /index_name/_unfreeze
Se espera que las búsquedas de índices congelados se ejecuten lentamente. Los índices congelados no están pensados para una carga de búsqueda alta. Es posible que una búsqueda de un índice congelado tarde segundos o minutos en completarse, incluso si las mismas búsquedas se completaron en milisegundos cuando los índices no estaban congelados.
Búsqueda de un índice congelado
El número de índices congelados cargados simultáneamente por nodo está limitado por el número de subprocesos en el grupo de subprocesos search_throttled, que es 1 de forma predeterminada. Para incluir índices congelados, se debe ejecutar una solicitud de búsqueda con el parámetro de consulta: ignore_throttled = false.
GET /index_name/_search?q=user:tpoint&ignore_throttled=false
Supervisión de índices congelados
Los índices congelados son índices normales que utilizan la limitación de búsqueda y una implementación de fragmentos de memoria eficiente.
GET /_cat/indices/index_name?v&h=i,sth