[go: up one dir, main page]

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

Database Entry

Ignite: Version Comparison


Logo v1 logo v2 logo
Description
Ignite is an in-memory, distributed key-value store which uses a shared-nothing, node-based cluster architecture. It can be used with existing third party databases to improve the overall performance and scalability, and it can also be used in its native persistence.
  1. https://ignite.apache.org/use-cases/in-memory-data-grid
  2. https://www.gridgain.com/resources/papers/introducing-apache-ignite
Ignite is an in-memory, distributed key-value store which uses a shared-nothing, node-based cluster architecture. It can be used with existing third party databases to improve the overall performance and scalability, and it can also be used in its native persistence.
  1. https://ignite.apache.org/use-cases/in-memory-data-grid
  2. https://www.gridgain.com/resources/papers/introducing-apache-ignite
History
Ignite was originally the proprietary GridGain DBMS for in-memory computing. Then Ignite was donated to Apache Software Foundation as "The Apache Ignite middleware project" and open-sourced by GridGain in late 2014. It was accepted in the Apache Incubator program in the same year. It graduated on September 18, 2015.
  1. https://en.wikipedia.org/wiki/Apache_Ignite
  2. https://www.gridgain.com/resources/papers/introducing-apache-ignite
Ignite was originally the proprietary GridGain DBMS for in-memory computing. Then Ignite was donated to Apache Software Foundation as "The Apache Ignite middleware project" and open-sourced by GridGain in late 2014. It was accepted in the Apache Incubator program in the same year. It graduated on September 18, 2015.
  1. https://en.wikipedia.org/wiki/Apache_Ignite
  2. https://www.gridgain.com/resources/papers/introducing-apache-ignite
Start Year 2014 2014
End Year
Twitter URL @ApacheIgnite
Countries United States of America United States of America
Former Names
Website URL https://ignite.apache.org https://ignite.apache.org
Docs URL https://apacheignite.readme.io/docs https://apacheignite.readme.io/docs
Source Repo URL https://github.com/apache/ignite https://github.com/apache/ignite
Blog URL
Wikipedia URL https://en.wikipedia.org/wiki/Apache_Ignite https://en.wikipedia.org/wiki/Apache_Ignite
Tags
Licenses
Apache v2
Apache v2
Operating Systems
Governance
Project Types
Open Source
Open Source
Supported Languages
C# Java
C#Java
Written In
Java
Java
Coding Agents
Developer Orgs
Apache Software Foundation
Apache Software Foundation
Derived From
GridGain
GridGain
Embedded Systems
Inspired By
Compatible With
Hosted Services
Acquisitions
Checkpoints
Consistent
According to Ignite's confluence page, consistent checkpointing is available in the system.
  1. https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood#IgnitePersistentStore-underthehood-Checkpointing
Consistent
According to Ignite's confluence page, consistent checkpointing is available in the system.
  1. https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Persistent+Store+-+under+the+hood#IgnitePersistentStore-underthehood-Checkpointing
Compression
There is no data compression implemented in ignite now. However, ignite suggests the Index Prefix Compression in its future enhancement plan.
  1. https://cwiki.apache.org/confluence/display/IGNITE/IEP-20:+Data+Compression+in+Ignite#IEP-20:DataCompressioninIgnite-IndexPrefixCompression
There is no data compression implemented in ignite now. However, ignite suggests the Index Prefix Compression in its future enhancement plan.
  1. https://cwiki.apache.org/confluence/display/IGNITE/IEP-20:+Data+Compression+in+Ignite#IEP-20:DataCompressioninIgnite-IndexPrefixCompression
Concurrency Control
Multi-version Concurrency Control (MVCC)
According to Ignite's documentation v2.7.6, Multi-version concurrency control is available from Ignite version 2.7. In MVCC, a logical snapshot of data is created for each transaction. The snapshot is consistent throughout the transaction and the transaction can only view and modify data in this snapshot. For example, if an entry is read by transaction A and updated by transaction B when transaction A tries to update the entry again, an exception will be thrown and transaction A will need to be retried.
  1. https://apacheignite.readme.io/docs/multiversion-concurrency-control
Multi-version Concurrency Control (MVCC)
According to Ignite's documentation v2.7.6, Multi-version concurrency control is available from Ignite version 2.7. In MVCC, a logical snapshot of data is created for each transaction. The snapshot is consistent throughout the transaction and the transaction can only view and modify data in this snapshot. For example, if an entry is read by transaction A and updated by transaction B when transaction A tries to update the entry again, an exception will be thrown and transaction A will need to be retried.
  1. https://apacheignite.readme.io/docs/multiversion-concurrency-control
Data Model
Key-Value
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.
  1. https://apacheignite.readme.io/docs/data-grid
Key-Value
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.
  1. https://apacheignite.readme.io/docs/data-grid
Foreign Keys
Not Supported
Ignite does not support foreign key constraints.
  1. https://apacheignite.readme.io/docs/ignite-facts
Not Supported
Ignite does not support foreign key constraints.
  1. https://apacheignite.readme.io/docs/ignite-facts
Hardware Acceleration
Indexes
B+Tree
Ignite uses B+tree data structures to store regular indexes. Ignite supports primary and secondary indexes, but it will only enforce the uniqueness of primary indexes.
  1. https://apacheignite-sql.readme.io/docs/create-index
B+Tree
Ignite uses B+tree data structures to store regular indexes. Ignite supports primary and secondary indexes, but it will only enforce the uniqueness of primary indexes.
  1. https://apacheignite-sql.readme.io/docs/create-index
Isolation Levels
Read Committed Repeatable Read Serializable
According to Ignite's official documentation, the following three isolation levels are supported: read committed, repeatable read, and serializable.
  1. https://apacheignite.readme.io/docs/concurrency-modes-and-isolation-levels
Read CommittedRepeatable ReadSerializable
According to Ignite's official documentation, the following three isolation levels are supported: read committed, repeatable read, and serializable.
  1. https://apacheignite.readme.io/docs/concurrency-modes-and-isolation-levels
Joins
Not Supported
Not Supported
Logging
Logical Logging
Ignite uses a write-ahead log which logs logical database modifications and page changes.
  1. https://cwiki.apache.org/confluence/display/IGNITE/Persistent+Store+Architecture#PersistentStoreArchitecture-Write-Ahead-Log
Logical Logging
Ignite uses a write-ahead log which logs logical database modifications and page changes.
  1. https://cwiki.apache.org/confluence/display/IGNITE/Persistent+Store+Architecture#PersistentStoreArchitecture-Write-Ahead-Log
Parallel Execution
Intra-Operator (Horizontal)
It supports distributed collocated processing, where the operation can be distributed to each node.
  1. https://ignite.apache.org/features/compute-apis
Intra-Operator (Horizontal)
It supports distributed collocated processing, where the operation can be distributed to each node.
  1. https://ignite.apache.org/features/compute-apis
Query Compilation
Query Execution
Query Interface
SQL
According to Ignite's official documentation, the support of following syntaxes of SQL are available in Ignite: Data Definition Language (e.g. CREATE INDEX, CREATE TABLE), Data Manipulation Language (e.g. SELECT, INSERT, UPDATE), Aggregate Functions (e.g. AVG, MAX, MIN, SUM), Numeric Functions (e.g. ABS, SIN, COS), String Functions (e.g. CONCAT, LOWER, UPPER), Date and Time Functions (e.g. DATEDIFF), System Functions (e.g. COALESCE, DECODE, GREATEST, IFNULL) and Data Types (e.g. BOOLEAN, INT, TINYINT, SMALLINT).
  1. https://apacheignite-sql.readme.io/docs/sql-reference-overview
SQL
According to Ignite's official documentation, the support of following syntaxes of SQL are available in Ignite: Data Definition Language (e.g. CREATE INDEX, CREATE TABLE), Data Manipulation Language (e.g. SELECT, INSERT, UPDATE), Aggregate Functions (e.g. AVG, MAX, MIN, SUM), Numeric Functions (e.g. ABS, SIN, COS), String Functions (e.g. CONCAT, LOWER, UPPER), Date and Time Functions (e.g. DATEDIFF), System Functions (e.g. COALESCE, DECODE, GREATEST, IFNULL) and Data Types (e.g. BOOLEAN, INT, TINYINT, SMALLINT).
  1. https://apacheignite-sql.readme.io/docs/sql-reference-overview
Storage Architecture
Disk-oriented In-Memory
Apache Ignite is an in-memory (or memory-centric) distributed database. But there is a native persistence option in Ignite. If you turned it off, it is a pure in-memory store. When the option is turned on, it stores both data and indexes on disk. In this mode, a subset of data is stored in memory. Additionally, one benefit of this mode is that the indexes don't need to be rebuild when the system restarts since they are persisted on the disk.
  1. https://ignite.apache.org/use-cases/in-memory-data-grid
Disk-orientedIn-Memory
Apache Ignite is an in-memory (or memory-centric) distributed database. But there is a native persistence option in Ignite. If you turned it off, it is a pure in-memory store. When the option is turned on, it stores both data and indexes on disk. In this mode, a subset of data is stored in memory. Additionally, one benefit of this mode is that the indexes don't need to be rebuild when the system restarts since they are persisted on the disk.
  1. https://ignite.apache.org/use-cases/in-memory-data-grid
Storage Format
Storage Model
N-ary Storage Model (Row/Record)
N-ary Storage Model (Row/Record)
Storage Organization
Ignite used a page-based memory architecture, where memory is split into pages of fixed size. The pages are stored in RAM and are organized in a special hierarchy on disk.
  1. https://apacheignite.readme.io/docs/memory-architecture
Ignite used a page-based memory architecture, where memory is split into pages of fixed size. The pages are stored in RAM and are organized in a special hierarchy on disk.
  1. https://apacheignite.readme.io/docs/memory-architecture
Stored Procedures
Supported
Ignite support access to the contents of the result generated by batches and stored procedures.
  1. https://apacheignite-sql.readme.io/docs/specification#level-1-interface-conformance
Supported
Ignite support access to the contents of the result generated by batches and stored procedures.
  1. https://apacheignite-sql.readme.io/docs/specification#level-1-interface-conformance
System Architecture
Shared-Nothing
Ignite uses a shared-nothing, node-based cluster architecture. The nodes can automatically discover each other. It supports third-party persistence and native persistence. For third-party persistence, it acts as a in-memory cache on top of a third-party database. For its native persistence, it acts as a in-memory (memory-centric) distributed database. It also supports collocated processing, where the computation on data is done on the node where the data is stored.
  1. https://apacheignite-sql.readme.io/docs/distributed-joins
  2. https://apacheignite.readme.io/docs/what-is-ignite
  3. https://ignite.apache.org/features/compute-apis
  4. https://www.gridgain.com/resources/papers/introducing-apache-ignite
Shared-Nothing
Ignite uses a shared-nothing, node-based cluster architecture. The nodes can automatically discover each other. It supports third-party persistence and native persistence. For third-party persistence, it acts as a in-memory cache on top of a third-party database. For its native persistence, it acts as a in-memory (memory-centric) distributed database. It also supports collocated processing, where the computation on data is done on the node where the data is stored.
  1. https://apacheignite-sql.readme.io/docs/distributed-joins
  2. https://apacheignite.readme.io/docs/what-is-ignite
  3. https://ignite.apache.org/features/compute-apis
  4. https://www.gridgain.com/resources/papers/introducing-apache-ignite
Views
Virtual Views
Ignite has some built-in views that contain information about cluster nodes.
  1. https://apacheignite-sql.readme.io/docs/system-views
Virtual Views
Ignite has some built-in views that contain information about cluster nodes.
  1. https://apacheignite-sql.readme.io/docs/system-views