extend ../_components/base.pug

block pagetitle
    | In-Memory Database 

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

  



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
                .h3.pt-2.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="/public/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 an in-memory database works?
              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="/public/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 with no compromises
           .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, in one system, the advantages of in-memory computing with disk durability and strong consistency.
              .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 to preload or 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 to cache a subset of the data in memory and query both in-memory and disk-only records with SQL and all other available
                
            
    // /.compute2

    section.base3
       .container
           h2.base3__h2.h4 Apache Ignite as a data grid 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",
                        "/public/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"
                    )
                    h3.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",
                        "/public/img/usecases/datagrid/two-video.png",
                        "",
                        "Real Time Exposure Management Using Ignite",
                        "comvideo__txt--white hub5__video"
                    )
                    h3.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
                h3.h4.nativebotblock__title
                    img(src="/public/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
                h3.h4.nativebotblock__title
                    img(src="/public/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="https://ignite.apache.org/use-cases/in-memory-cache.html", target="_blank") In-Memory Cache






