<!--
▄▄▄       ██▓███   ▄▄▄       ▄████▄   ██░ ██ ▓█████     ██▓  ▄████  ███▄    █  ██▓▄▄▄█████▓▓█████
▒████▄    ▓██░  ██▒▒████▄    ▒██▀ ▀█  ▓██░ ██▒▓█   ▀    ▓██▒ ██▒ ▀█▒ ██ ▀█   █ ▓██▒▓  ██▒ ▓▒▓█   ▀
▒██  ▀█▄  ▓██░ ██▓▒▒██  ▀█▄  ▒▓█    ▄ ▒██▀▀██░▒███      ▒██▒▒██░▄▄▄░▓██  ▀█ ██▒▒██▒▒ ▓██░ ▒░▒███
░██▄▄▄▄██ ▒██▄█▓▒ ▒░██▄▄▄▄██ ▒▓▓▄ ▄██▒░▓█ ░██ ▒▓█  ▄    ░██░░▓█  ██▓▓██▒  ▐▌██▒░██░░ ▓██▓ ░ ▒▓█  ▄
▓█   ▓██▒▒██▒ ░  ░ ▓█   ▓██▒▒ ▓███▀ ░░▓█▒░██▓░▒████▒   ░██░░▒▓███▀▒▒██░   ▓██░░██░  ▒██▒ ░ ░▒████▒
▒▒   ▓▒█░▒▓▒░ ░  ░ ▒▒   ▓▒█░░ ░▒ ▒  ░ ▒ ░░▒░▒░░ ▒░ ░   ░▓   ░▒   ▒ ░ ▒░   ▒ ▒ ░▓    ▒ ░░   ░░ ▒░ ░
 ▒   ▒▒ ░░▒ ░       ▒   ▒▒ ░  ░  ▒    ▒ ░▒░ ░ ░ ░  ░    ▒ ░  ░   ░ ░ ░░   ░ ▒░ ▒ ░    ░     ░ ░  ░
 ░   ▒   ░░         ░   ▒   ░         ░  ░░ ░   ░       ▒ ░░ ░   ░    ░   ░ ░  ▒ ░  ░         ░
     ░  ░               ░  ░░ ░       ░  ░  ░   ░  ░    ░        ░          ░  ░              ░  ░
-->

<!--
Licensed to the Apache Software Foundation (ASF) under one
or more contributor license agreements.  See the NOTICE file
distributed with this work for additional information
regarding copyright ownership.  The ASF licenses this file
to you under the Apache License, Version 2.0 (the
"License"); you may not use this file except in compliance
with the License.  You may obtain a copy of the License at

http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing,
software distributed under the License is distributed on an
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
KIND, either express or implied.  See the License for the
specific language governing permissions and limitations
under the License.
-->

<!DOCTYPE html>
<html>
<head>
    <link rel="canonical" href="https://ignite.apache.org/whatisignite.html" />
    <meta charset="utf-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate" />
    <meta http-equiv="Pragma" content="no-cache" />
    <meta http-equiv="Expires" content="0" />
    <title>What is Apache Ignite</title>
    <meta name="description" content="Apache Ignite components and facts: in-memory and persistent modes, distributed SQL database, in-memory data grid, in-memory database, ACID transactions, collocated processing, and more..."/>
    <link media="all" rel="stylesheet" href="/css/all.css?v=1514336028"/>
    <link href="https://netdna.bootstrapcdn.com/font-awesome/4.2.0/css/font-awesome.css" rel="stylesheet"/>
    <link href='https://fonts.googleapis.com/css?family=Open+Sans:400,300,300italic,400italic,600,600italic,700,700italic,800,800italic' rel='stylesheet' type='text/css'/>

    <!--#include virtual="/includes/sh.html" -->
</head>
<body>
<div id="wrapper">
    <!--#include virtual="/includes/header.html" -->

    <main id="main" role="main" class="container">
        <section id="whatisignite" class="page-section" style="border: none;">
            <h1 class="first heading" style="text-align: center;"><span>Apache Ignite&trade; is ...</span></h1>
            <div class="col-sm-12 col-md-12 col-xs-12 description-block">
                <p style="text-align: center;"><i>memory-centric distributed
                    <strong>database</strong>, <strong>caching</strong>, and <strong>processing</strong> platform for
                    transactional, analytical, and streaming workloads,<br/>
                    delivering <nobr>in-memory</nobr> speeds at petabyte scale</i>
                </p>
            </div>
            <div class="col-sm-12 col-md-12 col-xs-12 img-holder">
                <a href="/images/durable-memory.png"><img class="img-responsive" src="/images/durable-memory.png" alt="Apache Ignite - Durable Memory" width="900px;"/></a>
            </div>
        </section>

        <section id="whatisignite-feature-desc" class="page-section" style="border: none;">
            <div class="col-sm-12 col-md-12 col-xs-12">
                <h3>Durable Memory</h3>
                <p>
                    Ignite's durable memory component treats RAM not just as a caching layer but as a complete fully functional storage layer.
                    This means that users can turn the persistence on and off as needed. If the persistence is off, then Ignite
                    can act as a distributed <nobr><i><a href="/use-cases/database/in-memory-database.html">in-memory database</a></i></nobr>
                    or <nobr><i><a href="/features/datagrid.html">in-memory data grid</a></i></nobr>,
                    depending on whether you prefer to use SQL or key-value APIs. If the persistence is turned on, then Ignite becomes a distributed,
                    <nobr><i><a href="/features/sql.html">horizontally scalable database</a></i></nobr> that guarantees full data consistency and is
                    resilient to full cluster failures.
                </p>
                <h3>Ignite Persistence</h3>
                <p>
                    Ignite <a href="/features/persistence.html">native persistence</a> is a distributed,
                    strongly consistent disk store that transparently integrates with Ignite's <i>durable memory</i>.
                </p>
                <h3>ACID Compliance</h3>
                <p>
                    Data stored in Ignite is ACID-compliant both in memory and on disk, making Ignite a <i><strong>strongly consistent</strong></i> system.
                    Ignite transactions work across the network and can span multiple servers.
                </p>

                <h3>Complete SQL Support</h3>
                <p>
                    Ignite provides full support for SQL, DDL and DML, allowing users to interact with Ignite using pure SQL without writing any code.
                    This means that users can create tables and indexes as well as insert, update, and query data using only SQL. Having such complete SQL support makes Ignite a one-of-a-kind
                    <i><a href="/features/sql.html">distributed SQL database</a></i>.
                </p>

                <h3>Key-Value</h3>
                <p>
                    The in-memory data grid component in Ignite is a fully transactional <i><a href="/use-cases/database/key-value-store.html">distributed key-value store</a></i> that can scale horizontally
                    across 100s of servers in the cluster. When persistence is enabled, Ignite can also store more data than fits in memory and survive full cluster restarts.
                </p>

                <h3>Collocated Processing</h3>
                <p>
                    Most traditional databases work in a client-server fashion, meaning that data must be brought to the client side for processing. This approach requires
                    lots of data movement from servers to clients and generally does not scale. Ignite, on the other hand, allows for sending light-weight computations to the data,
                    i.e. <nobr><i><a href="/features/collocatedprocessing.html">collocating computations with data</a></i></nobr>. As a result, Ignite scales better and minimizes data movement.
                </p>

                <h3>Scalability and Durability</h3>
                <p>
                    Ignite is an elastic, horizontally scalable distributed system that supports adding and removing cluster nodes on demand. Ignite also allows for
                    storing multiple copies of the data, making it resilient to partial cluster failures. If the persistence is enabled, then data stored in Ignite
                    will also survive full cluster failures. Cluster restarts in Ignite can be very fast, as the data becomes operational instantaneously directly from disk.
                    As a result, the data does not need to be preloaded in-memory to begin processing, and Ignite caches will lazily warm up resuming the in memory performance.
                </p>
            </div>
        </section>

        <section id="ignite-faq" class="page-section">
            <div class="col-sm-12 col-md-12 col-xs-12" style="margin-top: 20px;">
                <h2 style="text-align: center; color: #e50000;">Ignite Facts</h2>
                <hr><br/><br/><br/>

                <h3>Is Ignite a persistent or memory-only storage?</h3>
                <p>
                    <strong>Both</strong>. 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.

                </p>
                <br/><br/>

                <h3>Is Ignite an in-memory database (IMDB)?</h3>
                <p>
                    <strong>Yes</strong>. Even though Ignite durable memory works well in-memory and on-disk, the disk
                    persistence can be disabled and Ignite can act as a distributed in-memory database, with
                    support for SQL and distributed joins.
                </p>
                <br/><br/>

                <h3>Is Ignite an in-memory data grid (IMDG)?</h3>
                <p>
                    <strong>Yes</strong>. Ignite is a full-featured distributed key-value data grid, which can be used either in
                    memory-only mode or with Ignite native persistence. It can also automatically integrate with any 3rd party databases,
                    including any RDBMS or NoSQL stores.
                </p>
                <br/><br/>

                <h3>Is Ignite a distributed cache?</h3>
                <p>
                    <strong>Yes</strong>. When native persistence is disabled, Ignite becomes a distributed cache.
                    Ignite implements JCache specification (JSR 107) and provides
                    a lot more functionality than required by the specification, including partitioned and replicated
                    distribution modes, distributed ACID transactions, SQL queries, native persistence, and more.
                </p>
                <br/><br/>

                <h3>Is Ignite a distributed database?</h3>
                <p>
                    <strong>Yes</strong>. Data in Ignite is either partitioned or replicated across a cluster of
                    multiple nodes. This provides scalability and adds resiliency to the system. Ignite automatically
                    controls how data is partitioned, however, users can plugin their own distribution (affinity) functions
                    and collocate various pieces of data together for efficiency.
                </p>
                <br/><br/>

                <h3>Is Ignite an SQL database?</h3>
                <p>
                    <strong>Not fully</strong>. Although Ignite aims to behave like any other relational SQL database,
                    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.
                </p>
                <p>
                    Essentially, Ignite purposely does not support any constraints that would entail a cluster-wide broadcast
                    message for each update and significantly hurt performance and scalability of the system.
                </p>
                <br/><br/>

                <h3>Is Ignite a NoSQL database?</h3>
                <p>
                    <strong>Not exactly</strong>. Just like other NoSQL databases, Ignite is highly available and
                    horizontally scalable. However, unlike other NoSQL databases, Ignite supports SQL and ACID transactions.
                </p>
                <br/><br/>

                <h3>Is Ignite a transactional database?</h3>
                <p>
                    <strong>Not fully</strong>. 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.
                </p>

                <p>
                    At SQL level Ignite supports atomic, but not yet transactional consistency. Ignite community plans
                    to implement SQL transactions in version 2.5.
                </p>
                <br/><br/>

                <h3>Is Ignite a multi-model database?</h3>
                <p>
                    <strong>Yes</strong>. Ignite supports both, key-value and SQL for modelling and accessing data.
                    In addition, Ignite provides strong processing APIs for computing on distributed data.
                </p>
                <br/><br/>

                <h3>Is Ignite a key-value store?</h3>
                <p>
                    <strong>Yes</strong>. Ignite provides a feature rich key-value API, that is JCache (JSR-107) compliant
                    and supports Java, C++, <nobr>and .NET.</nobr>
                </p>
                <p><a href="https://apacheignite.readme.io/docs/data-grid"></a></p><br/><br/>

                <h3>Book</h3>
                <p>Learn even more from <a href="http://a.co/h4MBi1v" target="_blank">High-Performance in-memory computing with Apache Ignite</a> book.</p>
            </div>
        </section>
    </main>

    <!--#include virtual="/includes/footer.html" -->
</div>
<!--#include virtual="/includes/scripts.html" -->
</body>
</html>
