Elasticsearch - Gefrorene Indizes
Die Indizes, die häufig durchsucht werden, werden gespeichert, da es einige Zeit dauert, sie neu zu erstellen und bei einer effizienten Suche zu helfen. Andererseits kann es Indizes geben, auf die wir selten zugreifen. Diese Indizes müssen nicht den Speicher belegen und können bei Bedarf neu erstellt werden. Solche Indizes werden als gefrorene Indizes bezeichnet.
Elasticsearch erstellt bei jeder Suche nach dem Shard die transienten Datenstrukturen jedes Shards eines eingefrorenen Index und verwirft diese Datenstrukturen, sobald die Suche abgeschlossen ist. Da Elasticsearch diese transienten Datenstrukturen nicht im Speicher verwaltet, verbrauchen eingefrorene Indizes viel weniger Heap als die normalen Indizes. Dies ermöglicht ein viel höheres Verhältnis von Festplatte zu Heap als dies sonst möglich wäre.
Beispiel zum Einfrieren und Auftauen
Im folgenden Beispiel wird ein Index eingefroren und wieder eingefroren.
POST /index_name/_freeze
POST /index_name/_unfreeze
Die Suche nach eingefrorenen Indizes wird voraussichtlich langsam ausgeführt. Gefrorene Indizes sind nicht für eine hohe Suchlast vorgesehen. Es ist möglich, dass die Suche nach einem eingefrorenen Index Sekunden oder Minuten dauert, selbst wenn dieselben Suchvorgänge in Millisekunden abgeschlossen wurden, als die Indizes nicht eingefroren wurden.
Suchen eines eingefrorenen Index
Die Anzahl der gleichzeitig geladenen eingefrorenen Indizes pro Knoten wird durch die Anzahl der Threads im Threadpool search_throttled begrenzt, die standardmäßig 1 beträgt. Um eingefrorene Indizes einzuschließen, muss eine Suchanforderung mit dem Abfrageparameter " ignore_throttled = false" ausgeführt werden.
GET /index_name/_search?q=user:tpoint&ignore_throttled=false
Überwachung eingefrorener Indizes
Gefrorene Indizes sind gewöhnliche Indizes, die Suchdrosselung und eine speichereffiziente Shard-Implementierung verwenden.
GET /_cat/indices/index_name?v&h=i,sth