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

<!--
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 lang="en">
<head>
    <link rel="canonical" href="https://ignite.apache.org/arch/multi-tier-storage.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>Multi-Tier Storage - Apache Ignite</title>

    <meta name="description"
          content="Apache Ignite multi-tier storage uses memory, disk, and Intel® Optane™ as active storage tiers to
          provide the speed of memory with the consistency of disk-based databases without the need for memory
          warm-ups on restarts."/>

    <!--#include virtual="/includes/styles.html" -->

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

    <main id="main" role="main" class="container">
        <section id="multi-tier" class="page-section">
            <h1 class="first">Multi-Tier Storage</h1>
            <div class="col-sm-12 col-md-12 col-xs-12" style="padding:0 0 20px 0;">
                <div class="col-sm-6 col-md-6 col-xs-12" style="padding-left:0; padding-right:0">
                    <p>
                        Apache Ignite is designed to work with memory, disk, and Intel® Optane™ as active storage tiers.
                        The memory tier allows using DRAM and Intel® Optane™ operating in the Memory Mode for data storage
                        and processing needs. The disk tier is optional with the support of two options -- you can
                        persist data in an external database or keep it in the Ignite native persistence. SSD, Flash,
                        HDD, or Intel® Optane™ operating in the AppDirect Mode can be used as a storage device.
                    </p>
                </div>
                <div class="col-sm-6 col-md-6 col-xs-12" style="padding-right:0">
                    <img class="img-responsive" src="/images/durable_memory.png" width="440px" style="float: right;"/>
                </div>
            </div>
            <p>
                Ignite takes full control of its memory tier by allocating and managing off-heap regions. Each Ignite
                server node allocates memory regions during bootstrap, splits the regions into pages, and keeps data
                records with indexes in those pages. Java heap is used to keep temporary objects such as query result
                sets, metrics samples, and objects generated by your application code. All these objects are garbage
                collected eventually.
            </p>
            <p>
                If you select the native persistence as the disk tier, then most of the processing will still take place
                in memory on cached data, but, with a full copy stored on disk. If any record is missing in memory,
                Ignite will read it from disk, allowing you to persist much larger data sets than you can cache in memory.
                This also eliminates the need for time-consuming memory warm-ups on restarts. As soon as your cluster
                reconnects after a restart, Ignite will serve most of the data from disk warming up the memory tier in
                the background.
            </p>

            <div class="page-heading" id="storage-usage-modes">
                Multi-Tier Storage Usage Modes
                <a href="/arch/multi-tier-storage.html#storage-usage-modes"><i class="fa fa-anchor"></i></a>
            </div>
            <table class="formatted" name="Deployment Options Features">
                <thead>
                <tr>
                    <th width="35%" class="left">Mode</th>
                    <th>Description</th>
                </tr>
                </thead>
                <tbody>
                <tr>
                    <td class="left">In-Memory</td>
                    <td>
                        <p>
                            The whole data set is available in memory only. In order to survive node failures, we
                            recommend keeping at least one backup copy of the data across the cluster. DRAM or
                            Intel® Optane™ operating in the Memory Mode can be used as a storage device.
                        </p>

                        <p>
                            <strong>Use cases</strong>: general in-memory caching, high-performance
                            computing, web-session caching, real-time processing of continuous data streams.
                        </p>
                    </td>
                </tr>
                <tr>
                    <td class="left">In-Memory + External Database</td>
                    <td>
                        <p>
                            Ignite is deployed as a distributed caching layer on top of an existing external database.
                            This mode is for accelerating disk-based databases and your services with APIs that
                            interact with them.
                        </p>

                        <p>
                            <strong>Use cases</strong>: acceleration of services and APIs with write-through and
                            write-behind capability, to an external database.
                        </p>
                    </td>
                </tr>
                <tr>
                    <td class="left">In-Memory Cache + Native Persistence</td>
                    <td>
                        <p>
                            100% of data is persisted to disk, and the same or smaller amount is cached in memory. The
                            more data is cached, the faster is the performance. The disk serves as the primary storage
                            that survives any cluster failures and restarts. There is no need for memory warm-ups on
                            restarts since Ignite can serve data from disk. SSD, Flash, HDD or Intel® Optane™ operating
                            in the AppDirect Mode can be used as a storage device.
                        </p>

                        <p>
                            <strong>Use cases</strong>: Ignite as an in-memory database or digital integration hub
                            with the active persistence layer.
                        </p>
                    </td>
                </tr>
                </tbody>
            </table>

            <h2 style="padding-top: 10px;" id="partitioning">
                Partitioning & Replication
                <a href="/arch/multi-tier-storage.html#partitioning"><i class="fa fa-anchor"></i></a>
            </h2>
            <p>
                Depending on the configuration, Ignite can both partition or replicate data across the cluster. In the
                replicated mode, each cluster node keeps a full copy of the data, but the size of a replicated cache is
                limited by the amount of memory available on the node. In the partitioned mode, Ignite spreads the data
                across all the cluster nodes evenly, allowing you to store much more than what can fit in a single machine.
            </p>

            <h2 style="padding-top: 10px;" id="durability">
                Durability and Consistency
                <a href="/arch/multi-tier-storage.html#durability"><i class="fa fa-anchor"></i></a>
            </h2>
            <p>
                Ignite provides the following ACID guarantees across the cluster:
            </p>

            <ul class="page-list" style="margin-bottom: 20px;">
                <li>Committed transactions always survive failures.</li>
                <li>
                    The cluster can always be recovered to the latest successfully committed transaction.
                </li>
            </ul>


            <h2 style="padding-top: 10px;" id="write-ahead-log">
                Write-Ahead Logging and Checkpointing
                <a href="/arch/multi-tier-storage.html#write-ahead-log"><i class="fa fa-anchor"></i></a>
            </h2>
            <p>
                If Ignite native persistence is selected as a disk tier, then every time a record is updated in memory,
                the change is added to the write-ahead log (WAL). The purpose of the WAL is to propagate updates to disk
                in the fastest way possible and provide a consistent recovery mechanism that supports full cluster failures.
            </p>

            <p>
                As WAL grows, it periodically gets checkpointed to the main storage. Checkpointing is the process of
                copying dirty pages from the memory tier to the partition files on disk. A dirty page is a page that was
                updated in memory, was appended to WAL, but was not written to the respective partition file on disk yet.
            </p>

            <div class="page-heading">Learn More</div>
            <p>
                <a href="https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Durable+Memory+-+under+the+hood" target="docs">
                    <b>Multi-Tier Storage Implementation Details <i class="fa fa-angle-double-right"></i></b>
                </a>
            </p>
            <p>
                <a href="/arch/persistence.html">
                    <b>Native Persistence <i class="fa fa-angle-double-right"></i></b>
                </a>
            </p>
            <p>
                <a href="/features/datagrid.html">
                    <b>Ignite as an In-Memory Data Grid <i class="fa fa-angle-double-right"></i></b>
                </a>
            </p>
            <p>
                <a href="/use-cases/in-memory-database.html">
                    <b>Ignite as an In-Memory Database <i class="fa fa-angle-double-right"></i></b>
                </a>
            </p>
            <p>
                <a href="/use-cases/dih.html">
                    <b>Ignite as a Digital Integration Hub <i class="fa fa-angle-double-right"></i></b>
                </a>
            </p>
            <p>
                <a href="/use-cases/hpc.html">
                    <b>Ignite for High Performance Computing <i class="fa fa-angle-double-right"></i></b>
                </a>
            </p>
        </section>
    </main>

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