DBDB.io The Encyclopedia of Database Systems · Est. 2017
Database of Databases

Database Entry

Ignite


Ignite is an in-memory, distributed key-value store.

Source Code
https://github.com/apache/ignite[02]
Country of Origin
US
Start Year
2014
Project Type
Open Source
Written in
Java
Supported Languages
C#, Java
Derived From
GridGain
License
Apache v2

Database Entry

Ignite


Ignite is an in-memory, distributed key-value store.

History


Ignite was originally the proprietary GridGain DBMS. It was then open-sourced in late 2014 and then accepted in the Apache Incubator program.

Checkpoints[05]


According to Ignite's confluence page, consistent checkpointing has been implemented in the system. The fuzzy checkpointing may be implemented in future releases.

Compression


There is no data compression implemented in ignite now. However, ignite suggests the Index Prefix Compression protocol in its future enhancement plan.

Concurrency Control


MVCC now is released as beta versions in Ignite version 2.7 In MVCC, Ignite will create a logical snapshot of data for each transaction. The snapshot is consistent throughout the transaction and the transaction can only view and modify data in this snapshot. If an entry is read by transaction A and updated by transaction B when transaction A tries to update the entry again, Ignite will throw an exception and transaction A will need to be retried.

Data Model


Ignite uses a key-value store. And Ignite determines the location of the data using a pluggable hashing algorithm. It means every client can determine where the value is stored by plugging the key into a hashing function.

Foreign Keys


Ignite does not support foreign key constraints.

Indexes


Ignite uses internal B+tree data structures to store regular indexes. Ignite supports primary and secondary indexes, but it will only enforce the uniqueness of primary indexes.

Isolation Levels


Ignite supports the following three isolation levels: READ_COMMITTED, REPEATABLE_READ, and SERIALIZABLE.

Logging[06]


Ignite uses a write-ahead log which logs logical database modifications and page changes.

Query Interface


SQL

Storage Architecture


Apache Ignite is a memory-centric distributed database.

Storage Model


Storage Organization


Ignite used a page-based memory architecture, where memory is split into pages of fixed size. The pages are stored in RAM (outside of Java Heap) and are organized in a special hierarchy on disk.

Stored Procedures


Ignite support access to the contents of the result generated by batches and stored procedures.

System Architecture


The nodes Ignite nodes can automatically discover each other. This helps to scale the cluster when needed, without having to restart the whole cluster.

Derivative Systems
GridGain GridGain

Citations

6 sources
  1. Distributed Database - Apache Ignite | Apache Ignite apache.org
  2. GitHub - apache/ignite: Apache Ignite · GitHub github.com
  3. What is Apache Ignite? readme.io
  4. Apache Ignite - Wikipedia wikipedia.org
  5. Ignite Persistent Store - under the hood - Apache Ignite - Apache Software Foundation apache.org
  6. Native Persistence - Apache Ignite apache.org
Revision #4 Last Updated: