Apache Ignite

GridGain Developer Hub - Apache Ignitetm

Welcome to the Apache Ignite developer hub run by GridGain. Here you'll find comprehensive guides and documentation to help you start working with Apache Ignite as quickly as possible, as well as support if you get stuck.

 

GridGain also provides Community Edition which is a distribution of Apache Ignite made available by GridGain. It is the fastest and easiest way to get started with Apache Ignite. The Community Edition is generally more stable than the Apache Ignite release available from the Apache Ignite website and may contain extra bug fixes and features that have not made it yet into the release on the Apache website.

 

Let's jump right in!

 

Documentation     Ask a Question     Download

 

Javadoc     Scaladoc     Examples

Cluster APIs

APIs for accessing cluster and nodes.

IgniteCluster

Cluster functionality is provided via IgniteCluster interface. You can get an instance of IgniteCluster from Ignite as follows:

Ignite ignite = Ignition.ignite();

IgniteCluster cluster = ignite.cluster();

Through IgniteCluster interface you can:

  • Start and stop remote cluster nodes
  • Get a list of all cluster members
  • Create logical Cluster Groups

ClusterNode

The ClusterNode interface has very concise API and deals only with the node as a logical network endpoint in the topology: its globally unique ID, the node metrics, its static attributes set by the user and a few other parameters.

Cluster Node Attributes

All cluster nodes on startup automatically register all environment and system properties as node attributes. However, users can choose to assign their own node attributes through configuration:

<bean class="org.apache.ignite.IgniteConfiguration">
    ...
    <property name="userAttributes">
        <map>
            <entry key="ROLE" value="worker"/>
        </map>
    </property>
    ...
</bean>

Following example shows how to get the nodes where "worker" attribute has been set.

ClusterGroup workers = ignite.cluster().forAttribute("ROLE", "worker");

Collection<ClusterNode> nodes = workers.nodes();

All node attributes are available via ClusterNode.attribute("propertyName") method.

Cluster Node Metrics

Ignite automatically collects metrics for all cluster nodes. Metrics are collected in the background and are updated with every heartbeat message exchanged between cluster nodes.

Node metrics are available via ClusterMetrics interface which contains over 50 various metrics (note that the same metrics are available for Cluster Groups as well).

Here is an example of getting some metrics, including average CPU load and used heap, for the local node:

// Local Ignite node.
ClusterNode localNode = cluster.localNode();

// Node metrics.
ClusterMetrics metrics = localNode.metrics();

// Get some metric values.
double cpuLoad = metrics.getCurrentCpuLoad();
long usedHeap = metrics.getHeapMemoryUsed();
int numberOfCores = metrics.getTotalCpus();
int activeJobs = metrics.getCurrentActiveJobs();

Local Cluster Node

Local grid node is an instance of the ClusterNode representing this Ignite node.

Here is an example of how to get a local node:

ClusterNode localNode = ignite.cluster().localNode();

Cluster APIs

APIs for accessing cluster and nodes.