Suchen

Definition Was ist Apache Ignite?

| Autor / Redakteur: Dipl.-Ing. (FH) Stefan Luber / Nico Litzel

Apache Ignite ist eine verteilt arbeitende Computing-Plattform, die auch als In-Memory-Data-Fabric bezeichnet wird. Unterstützt werden Caching, verteilte In-Memory-Datenbanken und die Berechnung von Streaming-, Transaktions- und Analyse-Workloads in Echtzeit. Die Software ist unter Apache Lizenz 2.0 verfügbar und ein Projekt der Apache Software Foundation (ASF).

Firma zum Thema

(Bild: © aga7ta - stock.adobe.com)

Bei Apache Ignite handelt es sich um eine Open-Source-Plattform für verteilte In-Memory-Datenbanken, Caching und die Berechnung von Transaktionsdaten großer Datenmengen in Echtzeit. Entwickelt wurde die Software ursprünglich vom Unternehmen GridGain. Mittlerweile ist Apache Ignite eines der Top-Level-Projekte der Apache Software Foundation (ASF) für In-Memory-Computing.

Wesentliche Bestandteile der In-Memory-Computing-Plattform sind eine In-Memory-Datenbank (IMDB), ein In-Memory-Data-Grid (IMDG) sowie die Unterstützung von Streaming-Analysen, Deep Learning und Machine Learning. Die Software ermöglicht die Prozessierung von Streaming-, Transaktions- und Analyse-Workloads auf Petabyte-Level in hoher Geschwindigkeit. Apache Ignite wird auch als In-Memory-Data-Fabric bezeichnet und lässt sich horizontal nahezu unbegrenzt skalieren.

Dank intelligenter Algorithmen werden bei der Prozessierung möglichst viele Daten im RAM gehalten und Zugriffe auf langsamere Festplatten vermieden. Da RAM als Default-Storage verwendet wird, gehört Apache Ignite zur Klasse der In-Memory-Computing-Plattformen. Mit der Software lassen sich existierende relationale oder NoSQL-Datenbanken beschleunigen. Unterstützt werden verschiedene APIs, ANSI-99 SQL und ACID-Transaktionen. Betreiben lässt sich Apache Ignite On-Premises, in der Cloud oder Container-basiert. Die Software steht unter Apache-Lizenz 2.0.

Die Durable-Memory-Architektur von Apache Ignite

Apache Ignite basiert auf einer Durable-Memory-Architektur. Sie gestattet es, Daten sowohl auf Festplattenspeichern als auch im Arbeitsspeicher abzulegen und zu prozessieren. Egal, ob sich die Daten im RAM oder auf dem Festplattenspeicher befinden, sie haben die gleiche binäre Struktur und Darstellung. Müssen Daten zwischen RAM und Festplattenspeichern verschoben werden, ist keine Transformation der Daten notwendig. Die Durable-Memory-Architektur teilt den Speicher in sogenannte Pages (Blöcke fester Größe) auf. Eindeutig identifiziert werden die Pages über die Page-ID.

Grundsätzlich wird RAM von Apache Ignite nicht wie ein einfacher Cache, sondern wie ein vollwertiger Speicherlayer behandelt. Die Persistenz des Speichers lässt sich bei Bedarf aktivieren. Ist die Persistenz gefordert, verhält sich Apache Ignite wie eine verteilte, horizontal skalierbare Datenbank, die bei Cluster-Ausfällen vollständige Datensicherheit und Datenkonsistenz bietet.

Weitere zentrale Merkmale von Apache Ignite

Apache Ignite unterstützt strukturierte, semi-strukturierte und unstrukturierte Daten. Die Daten lassen sich über SQL, APIs und ODBC- oder JDBC-Treiber ansprechen. Die Software ist als In-Memory-Data-Grid (IMDG) oberhalb von relationalen Datenbanken oder NoSQL-Datenbanken nutzbar. Wird sie mit einer Third-Party-Datenbank verwendet, beschleunigt Apache Ignite die Datenbank, indem die zu bearbeitenden Daten im Arbeitsspeicher bereitgehalten werden. Die sogenannte Native Persistence erlaubt den Einsatz von Apache Ignite als verteilte In-Memory-Datenbank, die verschiedenste Speichertechnologien wie Arbeitsspeicher, HDDs, SSDs und andere unterstützt.

Apache Ignite stellt ein Compute-Grid für parallele In-Memory-Bearbeitung rechenintensiver Tasks zur Verfügung. Das Grid lässt sich für beliebige Anwendungen des High-Performance-Computings (HPC) einsetzen und nutzt Massively Parallel Processing (MPP). Bestandteil des Systems ist eine mächtige Bibliothek an Funktionen für das Machine Learning und das Deep Learning.

Oberhalb der MPP-Architektur ist Apache Ignite mit ANSI-99 SQL kompatibel. SQL arbeitet verteilt und ist horizontal skalierbar. Unterstützt werden alle Data-Manipulation- und Data-Definition-Befehle sowie verteilte SQL-Joins. Die komplette Verarbeitung der SQL-Befehle ist so konzipiert, dass der Datenverkehr im Netz zwischen den Clustern minimiert ist.

ACID-kompatibel

Ein weiteres Merkmal von Apache Ignite ist die Unterstützung von ACID-Transaktionen (Atomarität, Konsistenz, Isolation und Dauerhaftigkeit). Mit Apache Ignite ausgeführte Transaktionen und gespeicherte Daten sind sowohl im RAM als auch auf dem Festplattenspeicher ACID-kompatibel. Darüber hinaus hat der Anwender die Möglichkeit, über Einstellungen den Level der Konsistenz in einem bestimmten Maß zu beeinflussen. So lässt sich eine optimale Balance zwischen Konsistenz und Geschwindigkeit finden.

Bestandteil von Apache Ignite ist ein verteiltes In-Memory-File-System. Es wird als Ignite File System (IGFS) bezeichnet und stellt eine Schnittstelle für den Zugriff auf die In-Memory-Daten zur Verfügung. IGFS ist mit dem Hadoop Distributed File System (HDFS) vergleichbar und liefert ein voll funktionales Dateisystem für den Arbeitsspeicher.

Die Apache Ignite Software ist in verschiedensten Umgebungen betreibbar. Sie kann auf eigenen On-Premises-Servern, in einer privaten, hybriden oder öffentlichen Cloud oder in einer Container-basierten Umgebung betrieben werden. Kompatibel sind unter anderem Kubernetes, Docker, Amazon Web Services (AWS), Microsoft Azure oder die Google Cloud Plattform.

Anwendungsbereiche von Apache Ignite

Weltweit wird Apache Ignite beispielsweise von Finanz-, Telekommunikations-, E-Commerce-Unternehmen oder Anbietern von Cloud-Leistungen für diverse Business-Anwendungen und Services genutzt.

Apache Ignite lässt sich beispielsweise einsetzen, um:

  • mehr Performance für vorhandene Datenbanksysteme oder Applikationen bereitzustellen
  • vorhandene Anwendungen besser zu skalieren
  • neue hoch-performante Analyse- oder Transaktionsanwendungen zu realisieren
  • neue hoch-performante Streaming-Analyseanwendungen zu realisieren
  • Anwendungen im Bereich des Machine Learnings oder des Deep Learnings zu realisieren
  • Echtzeit-Analysen durchzuführen

(ID:46031418)

Über den Autor