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.15.23'
implementation 'io.nstream:nstream-store-ignite:4.15.23'
Maven
<dependency>
<groupId>io.nstream</groupId>
<artifactId>nstream-persist-kernel</artifactId>
<version>4.15.23</version>
<type>module</type> <!-- Remove or comment this line for non-modular projects -->
</dependency>
<dependency>
<groupId>io.nstream</groupId>
<artifactId>nstream-store-ignite</artifactId>
<version>4.15.23</version>
<type>module</type> <!-- Remove or comment this line for non-modular projects -->
</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).