GridGain In-Memory Advanced Clustering

Sophisticated Clustering Technology on Java Virtual Machine (JVM)

The GridGain In-Memory Data Fabric provides one of the most sophisticated advanced clustering technologies on Java Virtual Machine (JVM). GridGain nodes can automatically discover each other. This helps to scale the cluster when needed, without having to restart the whole cluster. Developers can also leverage the GridGain In-Memory Advanced Clustering feature's hybrid cloud support that allows establishing connections between private clouds and public clouds such as Amazon Web Services or Microsoft Azure, providing users with the best of both worlds.

Features:

  • Dynamic Topology Management
  • Guaranteed Cluster Member Discovery
  • Public and Private Clouds
  • Automatic AWS Discovery
  • Virtual Cluster Groups
  • Zero Deployment
  • Per-Node Shared State
  • Real Time Cluster Monitoring and Metrics
Examples:

final Ignite ignite = Ignition.ignite();
 
IgniteCluster cluster = ignite.cluster();
 
// Cluster group containing all remote nodes, i.e. not this node.
ClusterGroup remotes = cluster.forRemotes();
 
// Get compute instance which will only execute over remote nodes.
IgniteCompute compute = ignite.compute(remotes);
 
// Broadcast to all remote nodes and print the ID of the node
// on which this closure is executing.
compute.broadcast(() -> System.out.println("Hello Node: " + cluster.localNode().id());

Ignite ignite = Ignition.ignite();
 
IgniteCluster cluster = ignite.cluster();
 
// Cluster group containing random remote node.
ClusterGroup random = cluster.forRemotes().forRandom();
 
// Get compute instance over a random remote node.
IgniteCompute compute = ignite.compute(random);
 
// Send closure to the random node and print its ID.
compute.run(() -> System.out.println("Hello Node: " + cluster.localNode().id());


Ignite ignite = Ignition.ignite();
 
IgniteCluster cluster = ignite.cluster();
 
// Dynamic cluster group over nodes loaded less than 50%.
ClusterGroup cpuNodes = cluster.forPredicate(node -> node.metrics().getCurrentCpuLoad() < 0.5); // Get compute instance over nodes loaded less than 50%. IgniteCompute compute = ignite.compute(cpuNodes); // Send closure to one of the CPU nodes. compute.run(() -> System.out.println("Hello Node: " + cluster.localNode().id());

Learn More