GridGain includes a powerful key-value database (key-value store). The key-value store is a distributed partitioned hash map with every cluster node owning a portion of the overall data set. As more nodes are added, more data can be stored and the cluster resources can be better utilized. The system supports distributed ACID transactions, scan and continuous queries, collocated processing and more.
A key-value store (or key-value database) is designed for storing, retrieving, and managing both structured and unstructured data. A single record in the store is represented as a key-value pair. The key is used not only as a primary key for the value processing but also defines a partition (or shard) the pair belongs to. It can therefore help to navigate to a cluster node that stores a pair’s replica in constant time - O(1). This algorithmic complexity of read and write operations gives a way to scale the key-value stores indefinitely without sacrificing performance.
JCache (JSR 107) Compliant Key-Value Database
The GridGain key-value database has the same basic capabilities of similar key-value stores. However, it also complies with the JCache (JSR 107) specification and supports distributed ACID transactions, SQL with distributed joins, scan and continuous queries, collocated processing.
JCache enables applications to create and work with an in-memory cache of objects through the JSR 107 API. JCache provides a simple to use yet very powerful API for data access. It allows users to spend their time on the core business logic of their application without having to focus on the finer details of implementing caching. In addition, the specification purposely omits any details about data distribution and consistency which allows vendors freedom in their own implementations.
JCache support provides:
- An in-memory key value store
- Basic cache operations
- ConcurrentMap APIs
- Collocated processing
- Events and metrics
- Pluggable persistence
JCache API support allows applications to be vendor neutral, making it relatively easy to switch between JCache supporting products.
Key-Value Store with Pluggable Persistence
The GridGain key-value store supports third party databases for persistence needs, including RDBMS, NoSQL and Hadoop. This approach provides optimal performance and scalability because all data is stored in RAM. It also does not require users to rip-and-replace their existing data layer architecture. This approach does require the full data set to be in memory for use cases such as SQL or scan queries.
The key-value store can hold and process data in RAM and on disk with the optional GridGain Persistent Store feature enabled. In this configuration, data and indexes are not required to be kept in memory and there is no warm up required of the cluster after a node or cluster restart. All queries sent to the key-value store can be spanned across both RAM and disk tiers.