extend ../_components/base.pug

block pagetitle
    title In-Memory Database - Apache Ignite
    meta(name="description", content="Apache Ignite, as the best open source in-memory database, is a high-performance system-of-records that can store and query large data sets from memory and disk without requiring to warm up the memory tier on cluster restarts.")
    link(rel="canonical", href="https://ignite.apache.org/use-cases/in-memory-database.html")

    meta(property="og:title", content="In-Memory Database - Apache Ignite")
    meta(property="og:type", content="article")
    meta(property="og:url", content="https://ignite.apache.org/use-cases/in-memory-database.html")
    meta(property="og:image", content="/img/og-pic.png")
    meta(property="og:description", content="Apache Ignite, as the best open source in-memory database, is a high-performance system-of-records that can store and query large data sets from memory and disk without requiring to warm up the memory tier on cluster restarts.") 

block css 
    link(rel="stylesheet", href="../css/native-persistence.css?ver=" + config.version)
    link(rel="stylesheet", href="../css/compute-apis.css?ver=" + config.version)
    link(rel="stylesheet", href="../css/digital-hub.css?ver=" + config.version)
    link(rel="stylesheet", href="../css/database.css?ver=" + config.version)

  



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


    section.innerhero
        .container.innerhero__cont
            .innerhero__main
                h1.h1.innerhero__h1 In-Memory Database<br> 
                    span.with-apache  With Apache Ignite
                .innerhero__descr.pt-2.h5.
                    In-memory database that scales horizontally across memory<br> and disk with full SQL support
                .innerhero__action 
                    a.button.innerhero__button(href="https://ignite.apache.org/docs/latest/index") Start Coding
            img.innerhero__pic.innerhero__pic--database(src="/img/usecases/database/hero-image.svg", alt="hero-image")
    // /.innerhero

    
    section.hub1 
       .container
            h2.compute2__h2 In-Memory Database Overview
            .hub1__block.flexi
                .hub1__info
                    h3.h5.hub1__title What is an in-memory database?
                    p.hub1__text An in-memory database (IMDB) is a data management system that stores data primarily in the computer’s main memory. 
                    h3.h5.hub1__title.hub1__titleend How does an in-memory database work?
                    p.hub1__text In-memory databases rely on spinning disks for data storage. IMDBs allow mission-critical applications to benefit from faster response times than disk-based databases.
                img.hub1__image(src="/img/usecases/database/image.svg", alt="image")
    // /.hub1 
    section.base1
       .container
            h2.base1__h2.h5 Apache Ignite as a distributed in-memory database scales horizontally across memory and disk without compromise
            .base1__blocks.flexi
                .base1__block
                    p.base1__text Apache Ignite works with memory, disk, and Intel Optane as active storage tiers. 
                    p.base1__text.pt-1 This <a href="/arch/multi-tier-storage.html">multi-tier</a> architecture combines the advantages of in-memory computing with disk durability and strong consistency, all in one system.
                .base1__block
                    .base1__item.flexi
                        .compute2-points__item.fz20
                        h3.base1__black Speed of memory
                    .base1__item.flexi
                        .compute2-points__item.fz20 
                        h3.base1__black Strong consistency
                    .base1__item.flexi
                        .compute2-points__item.fz20
                        h3.base1__black Durability of disk     
    // /.base1

    section.compute2
     .container
       h2.compute2__h2 Advantages Of Ignite Multi-Tiered Architecture
       .compute2__grid.flexi.hub2__grid 
            .compute2item.hub2item
              .compute2-points__item.fz20
              .compute2item__block
                h3.fz20.compute2item__title Instantaneous cluster restarts
                p.compute2__text.base2__text Ignite becomes fully operational from disk upon a cluster startup or restarts without requiring a preload or a warm-up the memory tier.
          
            .compute2item.hub2item
              .compute2-points__item.fz20
              .compute2item__block
                h3.fz20.compute2item__title Multi-tiered storage
                p.compute2__text.base2__text Ignite treats disk as an active storage layer, allowing it to cache a subset of the data in memory and query both in-memory and disk-only records with SQL and all other available APIs.
                
            
    // /.compute2

    section.base3
       .container
           h2.base3__h2.h4 Apache Ignite as an in-memory database <br>supports a variety of developer APIs
           .base3__blocks.flexi
                .base3__block
                    h3.base3__h3 Essential Developer APIs
                    .base3__images.flexi
                        .base3__item.flexi
                            img.base3__image(src="/img/features/03-distributed-SQL.svg", alt="sql")
                            .base3__subtext SQL
                        .base3__item.flexi
                            img.base3__image(src="/img/features/05-key-value-APIs.svg", alt="apis")
                            .base3__subtext Key-value
                        .base3__item.flexi
                            img.base3__image(src="/img/features/04-ACID-transactions.svg", alt="acid")
                            .base3__subtext ACID<br> transactions
                    p.base3__text Enable you to request, join, and group distributed datasets.
                .base3__block
                    h3.base3__h3 High-Performance Computing APIs
                    .base3__images.flexi
                        .base3__item.flexi
                            img.base3__image(src="/img/features/06-compute-APIs.svg", alt="sql")
                            .base3__subtext Compute
                        .base3__item.flexi
                            img.base3__image(src="/img/features/07-machine-learning.svg", alt="apis")
                            .base3__subtext Machine<br> learning
                        .base3__item.flexi
                            img.base3__image(src="/img/features/08-services.svg", alt="acid")
                            .base3__subtext Services
                    p.base3__text Execute logic close to the data, thus eliminating expensive data shuffling over the network.
                .base3__block
                    h3.base3__h3 Real-Time Streaming APIs
                    .base3__images.flexi
                        .base3__item.flexi
                            img.base3__image(src="/img/features/09-streaming.svg", alt="sql")
                            .base3__subtext Streaming
                        .base3__item.flexi
                            img.base3__image(src="/img/features/10-continuous-queries.svg", alt="apis")
                            .base3__subtext Continuous<br> Queries
                        .base3__item.flexi
                            img.base3__image(src="/img/features/11-messaging.svg", alt="acid")
                            .base3__subtext Messaging
                    p.base3__text.base3__textend Allow the seamless implementation of event-driven architectures.
              



    section.hub5 
      .container
         h2.compute2__h2 In-Memory Database Ignite User Stories
         .highcases__two
            .hub5__twowrap.flexi.pt-5
                .hub5__item
                    +powvideo(
                        "https://www.youtube.com/watch?v=-t-Syy9blXQ",
                        "/img/usecases/database/one-video.png",
                        "",
                        "Apache Ignite As A Hybrid Transactional-Analytical Processing Solution At A Large Investment Bank",
                        "comvideo__txt--white hub5__video"
                    )
                    .h4.hub5__title BNP Paribas
                    p.hub5__text.base5__text with the help of Apache Ignite managed to design, build, and optimize a hybrid transactional-analytical processing (HTAP) solution. This enabled the bank to make key business decisions in real time.
                .hub5__item
                    +powvideo(
                        "https://www.youtube.com/watch?v=B8A8yR_e6VM&t=2s",
                        "/img/usecases/datagrid/two-video.png",
                        "",
                        "Real Time Exposure Management Using Ignite",
                        "comvideo__txt--white hub5__video"
                    )
                    .h4.hub5__title JP MorganChase
                    p.hub5__text.base5__text faced an increasing need to apply transformations to large datasets in real time. To meet this need, their team selected Ignite to achieve persistence, caching and integrated compute.
          
              



    

   
    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 our quick start guide and build your first<br> application in 5-10 minutes
                a.nativebotblock__link.arrowlink(href="https://ignite.apache.org/docs/latest/", target="_blank") Quick Start Guide
            article.nativebotblock.nativebotblock--learn
                .h4.nativebotblock__title
                    img(src="/img/features/native-docs.svg", alt="").nativebotblock__icon
                    span Want to View More Use-Cases?
                p.nativebotblock__text Read the In-Memory Cache article
                a.nativebotblock__link.arrowlink(href="/use-cases/in-memory-cache.html") In-Memory Cache Article






