In-Memory Data Fabric: Apache Ignite 2.12 führt Change Data Capture ein

Neben dem neuen CDC-Datenverarbeitungsschema liefert das Ignite-Release eine Index Query API, die sich auch für vorhandene Indizes nutzen lässt.

In Pocket speichern vorlesen Druckansicht

(Bild: jamesteohart/Shutterstock.com)

Lesezeit: 3 Min.
Von
  • Matthias Parbel

Die Apache Software Foundation (ASF) hat die Fertigstellung der Version 2.12 der In-Memory Data Fabric Apache Ignite bekanntgegeben. Über zahlreiche Neuerungen und Fehlerbereinigungen hinaus liefert das aktuelle Release auch verschiedene neue Funktionen – darunter eine Index Query API sowie ein auf der Kafka-Library Ducktape basierendes Framework für Tests verteilter Umgebungen. In Apache Ignite 2.12 hält zudem das Datenverarbeitungsschema Change Data Capture (CDC) Einzug.

Als In-Memory-Computing-Plattform und verteilte Datenbank ist Ignite darauf ausgelegt, auch bei großen Datenmengen Skalierbarkeit und Performance für Echtzeitanwendungen zu gewährleisten. Dazu behält das System die Anwendung vollständig im Speicher und nutzt MPP (Massively Parallel Processing), um die Rechenlast im Cluster auf eine Vielzahl von Server-Nodes zu verteilen. Um dabei Änderungen von Einträgen auf dem lokalen Node asynchron zu empfangen und daraufhin notwendige Aktionen wie beispielsweise ein Update des Suchindex auszulösen, baut Ignite künftig auf das CDC-Pattern.

Die Implementierung von CDC erfolgt über ignite-cdc.sh und die Java API. Über die Aktualisierung des Suchindex hinaus eröffnet das Pattern Ignite-Anwendern auch Anwendungsfelder wie das Berechnen von Statistiken bei Streaming-Abfragen, die asynchrone Interaktion mit externen Systemen oder das Auditieren von Logs. CDC gilt vorläufig noch als experimentelles Feature, nähere Informationen zum Pattern finden sich in der Dokumentation.

Während Ignite standardmäßig bevorzugt allein den RAM-Speicher auslastet, lässt sich das System bei Bedarf darüber hinaus auf den im Cluster verfügbaren Plattenspeicher skalieren. Dazu bedarf es lediglich einer Konfigurationsanpassung:

IgniteConfiguration cfg = new IgniteConfiguration();

DataStorageConfiguration storageCfg = new DataStorageConfiguration();

// Enable Ignite Persistence
storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);

// Using the new storage configuration
cfg.setDataStorageConfiguration(storageCfg);

Eine neue Index Query API soll Indexabfragen über verteilte Indizes und das Aufrufen von Cache-Einträgen, die der angegebenen Abfrage entsprechen, ermöglichen. Nach Angaben des Ignite-Entwicklerteams kann das unter anderem in Fällen nützlich sein, in denen das Design der Anwendung kein SQL zulässt. Im Hinblick auf die Performance sei zudem IndexScan gegenüber ScanQuery zu bevorzugen.

Um eine Möglichkeit zu schaffen, die Apache-Ignite-Codebasis auch in Real-World-Umgebungen zu testen, hat sich das Team entschlossen, auf Basis von Confluent Ducktape ein geeignetes Test-Framework zu entwickeln. Das frei verfügbare Python-Framework kommt vor allem zum Testen von Apache Kafka zum Einsatz und bot sich offenbar aufgrund seiner simplen Struktur und der einfach gehaltenen Verwaltung von Test-Clustern an.

Unter dem Codenamen Ducktest wurden die grundlegenden Funktionen und Tests in einem separaten Zweig des Ignite-Haupt-Repository implementiert. Entwicklerinnen und Entwickler können dadurch nun in beliebigen Docker- und Cluster-Konfigurationen Ignite-Nodes starten und anhalten. Über die Test API lassen sich Cluster mit control.sh verwalten. Auch das Ausführen anderer Applikationen wie etwa Spark oder Zookeeper ist dank Ducktest nun möglich.

Weitere Informationen zu der ursprünglich auf die Firma GridGain Systems zurückgehende In-Memory Data Fabric finden sich auf der Projekt-Website von Apache Ignite. Die wichtigsten Neuerungen fasst der ASF-Blogbeitrag zusammen, einen vollständigen Überblick liefern die Release Notes.

(map)