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






