Key-Value In-Memory Data Grid

The GridGain® in-memory computing platform, built on Apache® Ignite, provides extensive and rich key-value APIs and can be used as an in-memory data grid (IMDG). GridGain is a distributed partitioned hash map with every cluster node owning a portion of the overall data set. Unlike other in-memory data grids, GridGain can be enabled to natively store data both in memory and on disk. Using this capability, GridGain can store more data than can fit in the physical memory of its designated server cluster.

The GridGain in-memory data grid is one of the highest performance, fastest implementations of ACID transactions or atomic data updates in distributed clusters. We regularly perform GridGain benchmarks to ensure consistently outstanding performance.

Third Party Databases

The GridGain in-memory data grid can improve performance and scalability of existing third party RDBMS or NoSQL databases or Hadoop-based storages. GridGain is deployed by sliding it in as a distributed cache between the application and database layers. GridGain will automatically write-through or read-through all the updates or reads to or from the underlying database. GridGain also offers transparent transactional behavior by merging with the underlying database transactions. However, using GridGain as an in-memory data grid has some limitations. For example, GridGain only indexes the data stored in memory so SQL or scan queries only include results for the in-memory data and do not include any data stored only in the third party database. If you require that data in memory as well as on disk be indexed and accessible via SQL queries, then use of the GridGain Persistent Store feature is required.

Key Value Data Grid

Native Persistence

GridGain native persistence is a distributed ACID and SQL-compliant disk store that transparently integrates with GridGain's durable memory. GridGain native persistence is optional and can be turned on or off. When turned off, GridGain is a pure in-memory store. When turned on, GridGain stores both data and indexes on disk. The system then also stores a subset of the data on disk plus the most frequently used indexes in memory. Additionally, since GridGain persists indexes on disk, the indexes do not have to be rebuilt in the event of a cluster restart, which makes the solution faster upon restart than other in-memory databases.

Native Persistence

Key-Value APIs

GridGain supports the standard JCache (JSR 107) API. In addition, GridGain supports distributed ACID transactions, scan and continuous queries, collocated processing and more.

The GridGain in-memory data grid linearly scales to hundreds of nodes by design. Strong semantics for data locality and affinity data routing reduce redundant data noise. GridGain is a distributed partitioned hash map with every cluster node owning a portion of the overall data so the more cluster nodes that are added, the more data the system can cache.

Affinity Collocation

To improve application performance and scalability, GridGain allows colocating data with data or compute with data. By collocating related cache keys, you can make sure that all keys will be cached on the same processing node. This avoids costly network trips to fetch data from remote nodes. It is also possible to route computations to the nodes where the data is cached.

More on the GridGain In-Memory Data Grid

Feature Description
Key-Value Store

GridGain data grid is a key-value store which can store data both, in-memory and on-disk. It can be viewed as a distributed partitioned hash map with every cluster node owning a portion of the overall data. This way the more cluster nodes that are added, the more data the solution can store.

Durable Memory

GridGain Durable Memory allows storing and processing data and indexes both in memory and on disk. The in-memory data, including indexes, is always stored and managed off-heap, eliminating any type of Garbage Collection overhead.

JCache (JSR 107)

GridGain is a 100% compliant implementation of JCache (JSR 107) specification. JCache provides a very simple to use, yet very powerful, API for data caching.

Memory-Centric Storage

GridGain is based on a distributed memory-centric architecture that combines the performance and scale of in-memory computing with the durability of disk plus strong consistency in one system.

Collocated Processing

GridGain allows executing any native Java, C++, and .NET/C# code directly on the server-side, close to the data, in collocated fashion.

Client-side Near Caches

Near cache is local client-side cache that stores the most recently and most frequently accessed data.

ACID Transactions

GridGain supports distributed ACID transactions for key-value as well as SQL operations.

Deadlock-Free Transactions

GridGain supports deadlock-free, optimistic transactions, which do not acquire any locks, and free users from worrying about the lock order. Such transactions also provide much better performance.

Transactional Entry Processor

The GridGain transactional entry processor allows executing collocated user logic on the server side within a transaction.

Cross-Partition Transactions

Transactions can be performed in GridGain on all partitions of a cache across the whole cluster.

Locks

GridGain allows developers to define explicit locks enforcing mutual exclusion on cached objects.

Continuous Queries

Continuous queries are useful for cases when you want to execute a query and then continue to get notified about the data changes that fall into your query filter.

Write-Through

Write-Through mode allows updating the data in the database.

Read-Through

Read-Through mode allows reading the data from the database.

Write-Behind Caching

GridGain provides an option to asynchronously perform updates to the database via Write-Behind Caching.

Hibernate L2 Caching

The GridGain data grid can be used as a Hibernate Second-Level Cache (or L2 cache), which can significantly speed-up the persistence layer of your application.

Spring Caching

GridGain provides a Spring-annotation-based way to enable caching for Java methods so that the result of a method execution is stored in the Ignite cache. If the same method is later called with the same set of parameters, the result will be retrieved from the cache instead of actually executing the method.

Spring Data

GridGain implements Spring Data CrudRepository interface that not only supports basic CRUD operations but also provides access to the Apache Ignite SQL capabilities via the unified Spring Data API.

OSGI Support