In-memory computing is a software and data-processing technique that stores data sets in memory across a cluster of interconnected nodes. An average speed performance is 10-1000x faster than in disk-based systems.
In-memory computing software includes a distributed in-memory store with APIs and libraries optimized for high-performance data processing. Each cluster node (physical or virtual machine) contributes its available memory space with CPU cores to the total capacity of the cluster.
An application interacts with the cluster as a single unit, letting the in-memory computing software shield and manage all the internals related to inter-node communications, data distribution, and queries processing. The cluster scales linearly and horizontally to meet the data volume and throughput goals of the applications.
When Ignite native persistence is disabled, Ignite can function as a distributed in-memory cache with support distributed ACID transactions, SQL queries, high-performance computing APIs, and more.
Ignite is a distributed database for high-performance computing with in-memory speed.
Data in Ignite is stored in-memory and/or on-disk, and is either partitioned or replicated across a cluster of multiple nodes. This provides scalability, performance, and resiliency.
Ignite multi-tier storage supports both in-memory and disk tiers. You can always disable the native persistence and use Ignite as a distributed in-memory database, with support for SQL, transactions and other APIs.
Ignite is a full-featured distributed data grid. As a grid, Ignite can automatically integrate with and accelerate any 3rd party databases, including any RDBMS or NoSQL stores.
Although Ignite supports SQL natively, there are differences in how Ignite handles constraints and indexes.
Ignite supports primary and secondary indexes, however the uniqueness can only be enforced for the primary indexes. Ignite also does not support foreign key constraints at the moment.
Native persistence in Ignite can be turned on and off. This allows Ignite to store data sets bigger than can fit in the available memory.
Essentially, smaller operational data sets can be stored in-memory only, and larger data sets that do not fit in memory can be stored on disk, using memory as a caching layer for better performance.
Just like other NoSQL databases, Ignite is highly available and horizontally scalable.
However, unlike other NoSQL databases, Ignite supports SQL and ACID transactions across multiple cluster nodes.
ACID Transactions are supported, but only at key-value API level. Ignite also supports cross-partition transactions, which means that transactions can span keys residing in different partitions on different servers.
At SQL level, Ignite supports atomic but not yet transactional consistency. A SQL transactions implementation is already in the works and will be released in Ignite 3.
Ignite supports both key-value and SQL for modelling and accessing data.
In addition, Ignite provides strong processing APIs for computing on distributed data.
Ignite provides a feature-rich key-value API that is JCache (JSR-107) compliant and supports Java, C++, .NET, and other programming languages.
Ready To Start?
Discover our quick start guides and build your first
application in 5-10 minutes