News-e1543926901638-1024x197

Neue, schnellere, sicherere und einfachere Cluster-Koordination mit Elasticsearch 7

Daniel Wrigley

Nachdem Elastic bereits im November das sogenannte Elastic Pioneer Program 7.0 gestartet hatte, welches den ersten alpha1 Kandidaten dieses Major-Releases zum Herunterladen und Testen bereitstellte, ist es nun soweit und der Elastic Stack in der Version 7.0 wurde offiziell veröffentlicht.

Wie für Major Releases üblich, sind auch in diesem viele nennenswerte und zentrale Änderungen enthalten, von denen einige nachfolgend zusammengefasst erläutert sind. Dazu zählen:

  • Neue Cluster-Koordination in Elasticsearch
  • Neues Design und neue Navigation in Kibana
  • Performance-Optimierung bei Top k und Intervals Queries
  • Bessere Unterstützung für maßgeschneidertes Scoring

Zen2 – Der neue Cluster-Koordinator

Cluster-Koordination in einem verteilten System ist eine Kunst für sich. Während einige Open Source Tools wie Solr, NiFi oder Kafka auf Apache ZooKeeper als externes Tool für diese Tätigkeit setzen, gibt es in Elasticsearch von Beginn an ein eigens entwickeltes System: Zen. Dies wurde für das Major Release neu durchdacht und optimiert, um die Cluster-Koordination schneller, sicherer und einfacher zu gestalten.

  • Elasticsearch entscheidet nun selbst, wie viele Nodes für ein Quorum nötig sind.
  • Es wurden Konfigurationsmöglichkeiten entfernt, die bei der Skalierung von Clustern aus Unachtsamkeit schnell zu Fehlern führen konnten. Dadurch wird der Betrieb des Clusters einfacher.
  • Master Elections gehen schneller vonstatten.
  • Ausführlicheres Logging zur Diagnose von Verhaltensmustern bei Nodes

Kibana – Globale Navigation und leichtgewichtigeres Design

Durch die Erstellung des sogenannten Elastic UI Frameworks konnte eine globale Navigation umgesetzt werden, welche die Anzeige von Breadcrumbs erlaubt oder das Ausführen von Benutzeraktionen wie Logout oder Passwortwechsel.

Durch Vereinheitlichungen konnte ebenso ein von der Community heiß begehrtes Feature umgesetzt werden: Der Dark Mode.

Erwähnenswert ist bei allen UI Anpassungen, dass sie Kibana Dashboards jetzt responsive machen, was die Usability auf mobilen Endgeräten im Prinzip erst richtig ermöglicht.

Bessere Performance bestimmter Suchanfragen

In vielen Use Cases, in denen eine Volltextsuche eine Rolle spielt, geht es häufig nur darum, die ersten 10, 20 oder 50 Ergebnisse anzuzeigen. Wer blättert z.B. bei Google oder Amazon schon auf die zehnte Seite? Durch die Nutzung des in Lucene 8 enthaltenen Block-Max WAND Algorithmus können nun unter Vernachlässigung der tatsächlichen Trefferanzahl die besten k Treffer schneller ermittelt werden, was für viele Use Cases eine Steigerung der Performance bedeutet.

Außerdem werden nun durch die Einführung von Intervals Queries Suchanfragen schneller und besser strukturiert, die darauf ausgelegt sind, dass bestimmte Wörter oder Phrasen in einer gewissen Distanz zueinanderstehen.

Folgendes Beispiel zeigt eine Suchanfrage nach einem Namen („Harry Potter“). Die Terme müssen in der Reihenfolge im Feld name vorkommen und es darf ein Term zwischen ihnen stehen (max_gaps). Somit würde diese Query für jedes Dokument matchen, in dem im Feld name „Harry Potter“ oder z.B. „Harry James Potter“ vorkommt:

POST names/_search
{
  "query": {
    „intervals“ : {
      "name" : {
        "all_of" : {
          "ordered" : true,
          "intervals" : {
            "match" : {
              "query" : "Harry Potter",
              "max_gaps" : 1
            }
          }

        }
      }
    }
  }
}

Bessere Unterstützung für Funktionen zur Beeinflussung des Scorings

Die Möglichkeit, Funktionen zu verwenden, um Relevanztuning zu betreiben, existiert in Elasticsearch schon lange. Die neue Generation von Function Scores verspricht dies nun leichter, modularer und flexibler einsetzen zu können. Kombinationen aus arithmetischen und Distanzfunktionen erlauben eine Score-Berechnung, die mehr Kontrolle über die Sortierung von Ergebnissen ermöglichen soll.

Fazit

Die in dem neuen Major Release enthaltenen Verbesserungen vereinfachen die Realisierung äußerst vieler – wenn nicht sogar aller – Use Cases, die mit dem Elastic Stack umgesetzt werden können.

Elasticsearch, Kibana and Packetbeat are trademarks of Elasticsearch BV, registered in the U.S. and in other countries.
Logstash is a registered trademark of Elasticsearch BV.
Elastic, Beats, Metricbeat, Filebeat, Winlogbeats, X-Pack are trademarks of Elasticsearch BV