Apache Ignite Integrations

The Apache Ignite Integrations Developer Hub

Welcome to the Apache Ignite Integrations developer hub. You'll find comprehensive guides and documentation to help you start working with Apache Ignite Integrations as quickly as possible, as well as support if you get stuck. Let's jump right in!

Get Started    

Ignite With Apache Cassandra

Persistent store implementation backed by Apache Cassandra NoSQL database.

Overview

Ignite Cassandra module implements persistent store for Ignite caches by utilizing Cassandra as a persistent storage for expired cache records.

It functions pretty much the same way like CacheJdbcBlobStore and CacheJdbcPojoStore and provides such benefits:

  1. Utilizes Apache Cassandra which is a very high performance and scalable key-value storage.

SQL Queries

Note that in order to perform SQL queries, if using an external database, you need to have all the data in Ignite caches.

An alternative would be to use Ignite Native Persistence - a distributed, ACID, and SQL-compliant disk store that allows performing SQL queries on the data stored in-memory as well as on disk.

  1. Uses Cassandra asynchronous queries for CacheStore batch operation LOADALL(), WRITEALL(), DELETEALL() to provide extremely high performance.
  2. Automatically creates all necessary tables (and keyspaces) in Cassandra if they are absent. Also automatically detects all the necessary fields for Ignite key-values that will be stored as POJOs, and creates an appropriate table structure. Thus you don't need to care about the Cassandra DDL syntax for table creation and Java to Cassandra type mapping details. You can also use @QuerySqlField annotation to provide configuration (column name, index, sort order) for Cassandra table columns.
  3. You can optionally specify the settings (replication factor, replication strategy, bloom filter and etc.) for Cassandra tables and keyspaces which should be created.
  4. Combines functionality of BLOB and POJO storage, allowing to specify how you prefer to store (as a BLOB or as a POJO) key-value pairs from your Ignite cache.
  5. Supports Standard Java and Kryo serialization for key-values which should be stored as a BLOB in Cassandra
  6. Supports Cassandra secondary indexes (including custom indexes) through persistence configuration settings for particular Ignite cache or such settings could be detected automatically if you configured SQL Indexes by Annotations by using @QuerySqlField(index = true) annotation
  7. Supports sort order for Cassandra cluster key fields through persistence configuration settings or such settings could be detected automatically if you are using @QuerySqlField(descending = true) annotation.
  8. Supports Affinity Collocation for the POJO key classes having one of their fields annotated by @AffinityKeyMapped. In such a way, key-values pairs which were stored on one node in Ignite cache will be also stored (collocated) on one node in Cassandra.

Index

  • Base concepts - base concepts and how to configure Ignite Cache to be persisted/loaded to/from Cassandra database

  • Examples - configuration examples

  • DDL generator - command line utility to generate DDLs for Cassandra keyspaces/tables from xml files specifying persistence settings (persistence descriptor)

  • Load tests - explains how to run load test (provided with the module source code) for your custom classes to measure performance and identify appropriate infrastructure to handle your load

  • AWS infrastructure deployment - framework which automatically spin up Cassandra/Ignite/Tests infrastructure of any size in Amazon and automates all the routine for you (create and bootstrap required amount of EC2 instances for Ignite/Cassandra/Tests clusters, run load tests and wait for their completion, collect all the load tests statistics from each EC2 instance and produce summary report). Also provides Ganglia monitoring for your Ignite/Cassandra/Tests clusters

  • Unit tests - brief description of unit tests (provided with the module source code)

Ignite With Apache Cassandra

Persistent store implementation backed by Apache Cassandra NoSQL database.