GridGain In-Memory Compute Grid

Faster Processing Using the Full Power of Your Cluster

The GridGain In-Memory Compute Grid feature enables parallel processing of CPU or otherwise resource intensive tasks including traditional High Performance Computing (HPC) and Massively Parallel Processing (MPP). Queries are broken down into sub-queries which are sent to the relevant nodes in the compute grid of the GridGain cluster and processed on the local CPUs where the data resides. Sub-query results from the in-memory compute grid are aggregated to produce the results for the original query much faster than would have been possible by running the query on a single node.

GridGain In-Memory Compute Grid diagram
Computations are spread across cluster nodes, delivering results in a fraction of the time of running them on a single node

Features:

  • Dynamic Clustering
  • Fork-Join & MapReduce Processing
  • Distributed Closure Execution
  • Adaptive Load Balancing
  • Automatic Fault Tolerance
  • Linear Scalability
  • Custom Scheduling
  • Checkpointing for Long Running Jobs
  • ExecutorService
Examples:

Ignite ignite = Ignition.ignite();
 
// Print out hello message on all cluster nodes.
ignite.compute().broadcast(() -> "Hello Node!");

Collection<ignitecallable> calls = new ArrayList<>();</ignitecallable>
 
// Iterate through all words in the sentence and create callable jobs.
for (String word : "How Many Characters".split(" "))
    calls.add(word::length);
 
// Execute collection of callables on the Ignite cluster.
Collection res = ignite.compute().call(calls);
 
// Add all the word lengths received from cluster nodes.
int total = res.stream().mapToInt(Integer::intValue).sum();


IgniteCompute compute  = ignite.compute();
 
// Execute closure on all cluster nodes.
Collection res = ignite.compute().apply(
    String::length,
    Arrays.asList("How Many Characters".split(" "))
);
 
// Add all the word lengths received from cluster nodes.
int total = res.stream().mapToInt(Integer::intValue).sum();

 

Learn More