Elasticsearch
Elasticsearch als Big-Data-Suchtechnik
Die Elasticsearch Skalierung kann neben vertikaler Skalierung (mehr CPU, RAM, SSD) auch durch eine horizontalen Skalierbarkeit erreicht werden,
Hierbei werden weitere Server dem Cluster hinzugefügt . Vorraussetzung ist eine Aufteilung des Suchindex in disjunkte Partitionen. Diese werden die auf die verschiedenen Server verteilt
Elasticsearch verwendet zur Partitionierung den Sharding-Ansatz, bei dem der Index in sogenannte Shards aufgeteilt wird.
Damit in einem verteilten System Daten nicht verloren gehen Komponenten ausfallen bietet Elasticsearch Ausfallsicherheit durch die Replikation
von Shards. Jeder Shard kann in N-facher Ausfertigung vorliegen. Der Primary Shard (kurz: Primary) nimmt Index-Operationen entgegen, die nachfolgend auf den anderen Kopien, den Replica Shards (kurz: Repli-
cas), nachgezogen werden. Die Replicas nehmen bei Ausfall des Primary dessen Rolle ein
Vorteile der Replikation :
- Failover bei Ausfall eines Primary
- Parallelisierung von Suchanfragen durch Kopien der Daten
Nachteile von Replikation:
- höherer Ressourcenverbrauch bei Index-Operationen (müssen auf allen Kopien des Shards)
- Es können sich gegebenenfalls Inkonsistenzen bei Lesezugriffen auf verschiedene Kopien desselben Shards ergeben
Inhalt dieser Seite
Mitwirkende an dieser Seite:
User | Edits | Comments | Labels |
---|---|---|---|
Matthias Hupfer | 6 | 0 | 0 |
Herr Torsten Simon | 2 | 0 | 0 |
Herrmann (WLO-Kernteam) Nina | 1 | 0 | 0 |
Split Brain
Für die Funktionstüchtigkeit des Clusters ist es essenziell, dass es genau einen Master gibt. Eine Situation mit zwei oder mehr Master-Knoten heißt Split Brain und ist zu vermeiden,
Nutzung der Technologie
Die entwickelte Erweiterung um die Integration der Elasticsearch als Suchkomponente besteht im wesentlichen aus zwei Komponenten:
- Den Suchdienst, welcher die Anfragen aus der edu-sharing Suchumgebung an die Elasticsearch weiterleitet, und alle Daten aus der Elasticsearch zurückgibt, ohne zusätzlich die relationale Datenbank anzufragen sowie
- einem Tracker, welcher im regelmäßigen Intervall über die Transaktionsliste geänderter Medien innerhalb des Alfresco-CMS prüft (ähnlich der Standard-Implementierung für Solr) und diese in eine spezielle und vollständige Elasticsearch-Struktur überführt.
Diese Struktur beinhaltet alle notwendigen Metadaten und Nutzer-Rechte, sodass keine zusätzliche Anfrage an die relationale Datenbank notwendig ist. Außerdem werden Informationen aus den Metadaten-Wertebereichen (s. oben) berücksichtigt und mit in den Suchindex aufgenommen.
Die Elasticsearch enthält folgende Daten
- Grundlegende Objekt-Metadaten
- Wertebereichs-Übersetzungen für unterstützte/verfügbare Sprachen
- Thumbnail für Inline-Ausgabe
- Informationen zu Verwendungen eines Mediums in Sammlungen (inkl. aller Sammlungsinformationen)
- Statistiken für Aufrufe, Downloads, sowohl gesamt als auch konfigurierbarer Zeitbereich
- In Arbeit: Bewertungsinformationen der Inhalte, sowohl gesamt als auch konfigurierbarer Zeitbereich