Elasticsearch - Indices gelés
Les index qui sont fréquemment recherchés sont conservés en mémoire car il faut du temps pour les reconstruire et aider à une recherche efficace. D'un autre côté, il peut y avoir des indices auxquels nous avons rarement accès. Ces index n'ont pas besoin d'occuper la mémoire et peuvent être reconstruits quand ils sont nécessaires. Ces indices sont appelés indices gelés.
Elasticsearch crée les structures de données transitoires de chaque partition d'un index gelé chaque fois que cette partition est recherchée et supprime ces structures de données dès que la recherche est terminée. Étant donné qu'Elasticsearch ne conserve pas ces structures de données transitoires en mémoire, les index gelés consomment beaucoup moins de tas que les index normaux. Cela permet un rapport disque / tas beaucoup plus élevé que ce qui serait autrement possible.
Exemple de gel et de dégel
L'exemple suivant gèle et dégèle un index -
POST /index_name/_freeze
POST /index_name/_unfreeze
Les recherches sur les index gelés devraient s'exécuter lentement. Les index gelés ne sont pas destinés à une charge de recherche élevée. Il est possible qu'une recherche d'un index figé puisse prendre quelques secondes ou minutes, même si les mêmes recherches se sont terminées en millisecondes lorsque les index n'étaient pas figés.
Recherche d'un index gelé
Le nombre d'index gelés chargés simultanément par nœud est limité par le nombre de threads dans le pool de threads search_throttled, qui est 1 par défaut. Pour inclure des index gelés, une demande de recherche doit être exécutée avec le paramètre de requête - ignore_throttled = false.
GET /index_name/_search?q=user:tpoint&ignore_throttled=false
Surveillance des indices gelés
Les index gelés sont des index ordinaires qui utilisent la limitation de la recherche et une implémentation de partition efficace en mémoire.
GET /_cat/indices/index_name?v&h=i,sth