Apache Ignite can be used as all-in-one distributed database that supports SQL, key-value, compute, machine learning and other data processing APIs.
Regardless of the API you decide to use, the data is always stored in a form of key-value pairs across the cluster. The underlying key-value store distributes the data evenly guaranteeing that every cluster node will own a portion of the overall data set.
The data and indexes can be stored both in RAM and, optionally, on disk if Ignite Native Persistence is enabled.
Ignite Persistent Store is a distributed ACID and SQL-compliant disk store that transparently integrates with Ignite's durable memory as an optional disk layer storing data and indexes on SSD, Flash, 3D XPoint, and other types of non-volatile storages.
Ignite complies with SQL ANSI-99 standard supporting all SQL and DML commands, including SELECT, UPDATE, INSERT, MERGE, DELETE statements and distributed joins. It also provides support for a subset of DDL commands relevant for distributed SQL databases.
Apache Ignite key-value APIs are compliant with JCache (JSR 107) specification and provide extended features built on top such as distributed ACID transactions, scan and continuous queries, collocated processing.
The disk-centric systems, like RDBMS or NoSQL, generally utilize the classic client-server approach, where the data is brought from the server to the client side where it gets processed and then is usually discarded. This approach does not scale well as moving the data over the network is the most expensive operation in a distributed system.
A much more scalable approach is collocated processing that reverses the flow by bringing the computations to the servers where the data actually resides. This approach allows you to execute advanced logic or distributed SQL with JOINs exactly where the data is stored avoiding expensive serialization and network trips.
Depending on the configuration, Ignite can either partition or replicate data.
REPLICATED mode, where data is fully replicated across all nodes
in the cluster, in
PARTITIONED mode Ignite will equally split the data across
multiple cluster nodes, allowing for staring TBs of data both in memory and on disk.
Ignite also allows to configure multiple backup copies to guarantee data resiliency in case of failures.
Regardless of which replication scheme is used, Ignite guarantees data consistency across all cluster members.