extend ../_components/base.pug

block pagetitle
    title Multi-Tier Storage, Memory Tier - Apache Ignite
    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.")
    link(rel="canonical", href="https://ignite.apache.org/arch/multi-tier-storage.html")

    meta(property="og:title", content="Multi-Tier Storage, Memory Tier - Apache Ignite")
    meta(property="og:type", content="article")
    meta(property="og:url", content="https://ignite.apache.org/arch/multi-tier-storage.html")
    meta(property="og:image", content="/img/og-pic.png")
    meta(property="og: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.")

block css 
    link(rel="stylesheet", href="../css/native-persistence.css?ver=" + config.version)
    link(rel="stylesheet", href="../css/multi-tier.css?ver=" + config.version)



block main
    - global.pageHref = "features"
    - config.hdrClassName = "hdr__blue"
    include ../_components/header.pug


    section.innerhero
        .container.innerhero__cont
            .innerhero__main
                .innerhero__pre.pb-3 Apache Ignite
                h1.h1.innerhero__h1 Multi-Tier Storage
                .innerhero__descr.pt-2.h5.
                    Store and access your data across memory <br>and disk without compromise
                .innerhero__action 
                    a.button.innerhero__button(href="https://ignite.apache.org/docs/latest/index") Start Coding
            img.innerhero__pic.innerhero__pic--multitier(src="/img/usecases/in-memory-hero.svg", alt="Distributed In-Memory Cache")
    // /.innerhero


    section.multitier2
    .container 
        .h3.multitier2__title.
            Apache Ignite multi-tier storage implements a cutting-edge storage architecture that combines performance benefits of&nbsp;memory with the scalability and durability advantages of disk-based databases.


    section.multitiers.container
        header.blockheader.blockheader--spl.flexi
                h2.h4.blockheader__left.blockheader__left--full Primary Multi-Tier Storage Usage Modes
        .multitier3.flexi
            .multitiers__left
                article.multitierblock
                    h3.multitierblock__title In-Memory Mode
                    p.fz20.pt-2 Get all the benefits of in-memory computing solutions. Store and process data at the lowest latency and highest throughput.
                    img.multitierblock__pic(src="/img/features/multitier/01-bd.svg", alt="")
            .multitiers__right.multitiers__text
                h4.multitier3__h4.fz20.pb-1x How It Works
                p The whole data set is available in memory tier only.
                p In order to survive node failures, we recommend keeping at least one backup copy of the data in the cluster. DRAM or Intel® Optane™ operating in the Memory Mode can be used as a storage device.
                h4.multitier3__h4.fz20.pt-3 Use-Cases
                ul.dashlist.pt-2
                    li In-memory caching
                    li High-performance computing
                    li Web-session caching
                    li Real-time processing of continuous data streams
                .multitiervid.pt-3
                    .multitiervid__link.pb-2
                        span In-Memory Mode Case-Study
                    +powvideo(
                        "https://www.youtube.com/watch?v=Mhtt2QL_qCQ&t=639s",
                        "/img/features/multitier/video-1.png",
                        "",
                        "How To Use Apache Ignite To&nbsp;Resque The Backend <br>Of The Bank",
                        "comvideo__txt--black  comvideo__txt--small"  
                    )
                        .multitiervid__descr Raiffeisen Bank uses in-memory mode to store their data
        // /.multitier3

        .multitier4.flexi
            .multitiers__left.multitiers__text
                h4.multitier3__h4.fz20.pb-1x How It Works
                p Ignite slides in between your existing application and data layer. Ignite <a href="https://ignite.apache.org/docs/latest/persistence/external-storage#read-through-and-write-through" target="_blank">writes-through</a> or <a href="https://ignite.apache.org/docs/latest/persistence/external-storage#write-behind-caching" target="_blank">writes-behind</a> all data modifications to the underlying external databases.
                h4.multitier3__h4.fz20.pt-3.pb-2 Use-Cases
                p Offloading and acceleration of existing databases, backend-systems, applications and APIs.
                .multitiervid.pt-4
                    .multitiervid__link.pb-2
                        span In-Memory + External Database Mode Case-Study
                    +powvideo(
                        "https://www.youtube.com/watch?v=CPmwnjDJ1Sk",
                        "/img/poweredby/videos/006.png",
                        "",
                        "Embracing The Service Consumption Shift In&nbsp;Banking",
                        "comvideo__txt--small"
                    )
                    .multitiervid__descr ING core banking system transformation with Apache Ignite.
            .multitiers__right 
                article.multitierblock
                    h3.multitierblock__title In-Memory + External Database Mode
                    p.fz20.pt-1x Accelerate and offload your existing databases by deploying Ignite as a caching layer on top of existing disk-based databases and back-end systems.
                    img.multitierblock__pic(src="/img/features/multitier/03-bd.svg", alt="")
        // /.multitier4

        .multitier5.flexi
            .multitiers__left
                article.multitierblock
                    h3.multitierblock__title Multi-Tier Database Mode
                    p.fz20.pt-1x Scale beyond the available memory capacity and skip memory warm-ups on restarts 
                    img.multitierblock__pic(src="/img/features/multitier/04-bd.svg", alt="")
            .multitiers__right.multitiers__text
                h4.multitier3__h4.fz20.pb-1x How It Works
                p 100% of data is persisted to Ignite native persistence, and the same amount or less is cached in memory. The more data cached, the faster the&nbsp;performance.
                p Applications can query both in-memory and disk-only records transparently scaling beyond available memory capacity.
                p 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.
                h4.multitier3__h4.fz20.pt-3.pb-2 Use-Cases
                p Ignite as a distributed database for HTAP workloads or digital integration hub with the active persistence layer.
                .multitiervid.pt-4 
                    .multitiervid__link.pb-2
                        span Native Persistence Case-Study
                    +powvideo(
                        "https://www.youtube.com/watch?v=jF9T2cJB6t0&t=137s",
                        "/img/features/multitier/video-2.png",
                        "",
                        "How To Use Apache Ignite To&nbsp;Resque The Backend <br>Of The Bank",
                        "comvideo__txt--small"
                    )
                        .multitiervid__descr JP Morgan team use Ignite to achieve persistence, caching and integrated compute
        // /.multitier3
    // /.multitiers



    section.native-bottom.container
        .native-bottom__grid 
            article.nativebotblock
                .h4.nativebotblock__title
                    img(src="/img/features/native-rocket.svg", alt="").nativebotblock__icon
                    span Ready to Start?
                p.nativebotblock__text Discover more details about multi-tier storage <br>and configure it for your use-case
                a.nativebotblock__link.arrowlink(href="https://ignite.apache.org/docs/latest/persistence/native-persistence", target="_blank") Configure Native Persistence
            article.nativebotblock.nativebotblock--learn
                .h4.nativebotblock__title
                    img(src="/img/features/native-docs.svg", alt="").nativebotblock__icon
                    span Want to Learn More?
                p.nativebotblock__text Check multi-tier storage implementation <br>details article 
                a.nativebotblock__link.arrowlink(href="https://cwiki.apache.org/confluence/display/IGNITE/Ignite+Multi-Tier+Storage+-+under+the+hood", target="_blank") Multi-Tier Storage Implementation Details






