Ignite in-memory data grid has been built from the ground up with a notion of horizontal scale and ability to add nodes on demand in real-time; it has been designed to linearly scale to hundreds of nodes with strong semantics for data locality and affinity data routing to reduce redundant data noise.
Ignite data grid supports local, replicated, and partitioned data sets and allows to freely cross query between these data sets using standard SQL syntax. Ignite supports standard SQL for querying in-memory data including support for distributed SQL joins.
Ignite data grid is lightning fast and is one of the fastest implementations of transactional or atomic data in a cluster today.
As long as your cluster is alive, Ignite will guarantee that the data between different cluster nodes will always remain consistent regardless of crashes or topology changes.
JCache (JSR 107)
Ignite Data Grid implements JCache (JSR 107) specification.
- Distributed In-Memory Caching
- Lightning Fast Performance
- Elastic Scalability
- Distributed In-Memory Transactions
- Web Session Clustering
- Hibernate L2 Cache Integration
- Tiered Off-Heap Storage
- Distributed ANSI-99 SQL Queries with support for Joins
IgniteCache interface is a gateway into Ignite cache implementation and provides methods for storing and retrieving data, executing queries, including SQL, iterating and scanning, etc.
IgniteCache interface extends
javax.cache.Cache interface from JCache specification and adds additional functionality to it, mainly having to do with local vs. distributed operations, queries, metrics, etc.
You can obtain an instance of
IgniteCache as follows:
Ignite ignite = Ignition.ignite(); // Obtain instance of cache named "myCache". // Note that different caches may have different generics. IgniteCache<Integer, String> cache = ignite.cache("myCache");
You can also create an instance of the cache on the fly, in which case Ignite will create and deploy the cache across all server cluster members.
Ignite ignite = Ignition.ignite(); CacheConfiguration cfg = new CacheConfiguration(); cfg.setName("myCache"); cfg.setAtomicityMode(TRANSACTIONAL); // Create cache with given name, if it does not exist. IgniteCache<Integer, String> cache = ignite.getOrCreateCache(cfg);
All caches defined in Ignite Spring XML configuration on any cluster member will also be automatically created and deployed on all the cluster servers (no need to specify the same configuration on each cluster member).