March 7 - June 27, 2024 - Nstream is hitting the road with Confluent on the #DataInMotionTour! / Learn More

Ignite

Ignite Store

The Ignite store implementation runs an Ignite instance within the process running the Swim server. To use it, ensure that thenstream.persist.store.ignite module is present on the module path.

Dependencies

Gradle

implementation 'io.nstream:nstream-persist-kernel:4.9.16'
implementation 'io.nstream:nstream-store-ignite:4.9.16'

Maven

<dependency>
  <groupId>io.nstream</groupId>
  <artifactId>nstream-persist-kernel</artifactId>
  <version>4.9.16</version>
  <type>module</type>
</dependency>
<dependency>
  <groupId>io.nstream</groupId>
  <artifactId>nstream-store-ignite</artifactId>
  <version>4.9.16</version>
  <type>module</type>
</dependency>

Configuration

Ignite persistence is configured as follows:

storeName: @store {
    implName: "Ignite"
    parameters: {
        configurationPath: "/path/to/ignite.xml"
    }
}

Here /path/to/ignite.xml is the path to the Ignite Spring configuration file to use. To allow the Ignite logging to work correctly you can also set the IGNITE_HOME Java property to allow it to find a logging properties file.

Configuration Options Table

Parameter Default Value Description
activateCluster false Whether to attempt to activate the cluster when the application starts.
initialActivationWait 1000ms Initial time to wait for the Ignite cluster to start.
maximumActivationWait 32000ms Maximum time to wait for the Ignite cluster to start.

Setting activateCluster to true will cause the Swim application to attempt to activate the cluster on startup.

Regardless, If the cluster is not active immediately, the application will wait for initialActivationWait. Successive wait times will double exponentially until the next delay would exceed maximumActivationWait. If the cluster has still not started, the application will fail.

Ephemeral and Persistent Ignite Clusters

It is possible to configure Ignite to either keep the contents of its caches entirely in memory or to persist them to disk. If the Ignite cluster is configured to persist its state to disk, the cluster will initially be inactive when it starts.

To activate the cluster, the activateCluster configuration parameter can be set that will cause the Swim server to attempt to activate it when it starts. Alternatively, you can create your own application that calls nstream.persist.store.ignite.init.InitCluster#initializeCluster to start the Ignite cluster without starting the Swim server.


Nstream is licensed under the Redis Source Available License 2.0 (RSALv2).