extend _components/base.pug

block pagetitle
    | FAQ   

block css 
    link(rel="stylesheet", href="../css/faq.css")
    link(rel="stylesheet", href="../css/tooling.css")

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


    section.innerhero.innerhero--faq
        .container.innerhero__cont
            .innerhero__main.innerhero__main--long
                h1.h1.innerhero__h1 Frequently Asked Questions <br>About Apache Ignite
                .innerhero__descr.pt-5.h4.
                    Ignite’s rich feature set enables it for a myriad of use cases. <br>
                    Is Ignite a cache, transactional database, key-value store? <br>Find the answers below.
            img.innerhero__pic.innerhero__pic--faq(src="/public/img/faq/hero.svg", alt="Frequently asked questions")
    // /.innerhero



    section.faqabout.container 
        .capstext Apache Ignite FAQs
        .faqabout__wrap.flexi.pt-5
            .faqabout__left
                h2.h4.pb-2 What Is In-memory Computing?
                p In-memory computing is a software and data-processing technique that stores data sets in memory across a cluster of interconnected nodes. An average speed performance is 10-1000x faster than in disk-based systems. 
                p In-memory computing software includes a distributed in-memory store with APIs and libraries optimized for high-performance data processing. Each cluster node (physical or virtual machine) contributes its available memory space with CPU cores to the total capacity of the cluster. 
                p An application interacts with the cluster as a single unit, letting the in-memory computing software shield and manage all the internals related to inter-node communications, data distribution, and queries processing. The cluster scales linearly and horizontally to meet the data volume and throughput goals of the applications.
            aside.faqabout__right
                .faqabout__num.h3 10-1000x
                p.h5 performance increase
                .faqabout__rightbot.h5 Unlimited horizontal scalability
    // /.faqabout




    section.faqfeats.container
        .h4.faqfeats__title Apache Ignite Belongs to&nbsp;The In-memory <br>Computing Category:
        .faqfeats__wrap.flexi.pt-5
            article.faqfeat.pt-1
                .faqfeat__iconwrap.flexi 
                    img(src="/public/img/faq/icon-faq1.svg", alt="")
                .faqfeat__text.pt-2 Build real-time and event-driven solutions that process data with in-memory speed
            article.faqfeat.pt-1
                .faqfeat__iconwrap.flexi 
                    img(src="/public/img/faq/icon-faq2.svg", alt="")
                .faqfeat__text.pt-2 Scale up&nbsp;and out across available memory and disk capacity
            article.faqfeat.pt-1
                .faqfeat__iconwrap.flexi 
                    img(src="/public/img/faq/icon-faq3.svg", alt="")
                .faqfeat__text.pt-2 Take advantage of&nbsp;built-in SQL, high-performance computing and real-time processing APIs
    // /.faqfeats




    section.faqboxs.container
        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a Distributed Cache?
            .faqbox__anwser.h5.pt-3 Yes
            .faqbox__text.pt-3
                p When Ignite native persistence is&nbsp;disabled, Ignite can function as&nbsp;a&nbsp;distributed in-memory cache with support distributed ACID&nbsp;transactions, SQL queries, high-performance computing APIs, and more.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/in-memory-cache.html") Learn more: In-Memory Cache

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a Distributed Database?
            .faqbox__anwser.h5.pt-3 Yes
            .faqbox__text.pt-3
                p Ignite is&nbsp;a&nbsp;distributed database for high-performance computing with in-memory speed.
                p Data in&nbsp;Ignite is&nbsp;stored in-memory and/or on-disk, and is&nbsp;either partitioned or&nbsp;replicated across a&nbsp;cluster of&nbsp;multiple nodes. This provides scalability, performance, and resiliency.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/in-memory-database.html ") Learn more: Distributed Database

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite an In-memory Database?
            .faqbox__anwser.h5.pt-3 Yes
            .faqbox__text.pt-3
                p Ignite multi-tier storage supports both in-memory and disk tiers. You can always disable the native persistence and use Ignite as&nbsp;a&nbsp;distributed in-memory database, with support for SQL, transactions and other APIs.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/in-memory-database.html") Learn more: In-Memory Database

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite an In-memory Data Grid?
            .faqbox__anwser.h5.pt-3 Yes
            .faqbox__text.pt-3
                p Ignite is&nbsp;a&nbsp;full-featured distributed data grid. As&nbsp;a&nbsp;grid, Ignite can automatically integrate with and accelerate any 3rd party databases, including any RDBMS or&nbsp;NoSQL stores.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/in-memory-data-grid.html") Learn more: In-Memory Data Grid

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite an SQL Database?
            .faqbox__anwser.h5.pt-3 Not fully
            .faqbox__text.pt-3
                p Although Ignite supports SQL natively, there are differences in&nbsp;how Ignite handles constraints and indexes.
                p Ignite supports primary and secondary indexes, however the uniqueness can only be&nbsp;enforced for the primary indexes. Ignite also does not support foreign key constraints at&nbsp;the moment.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/in-memory-database.html") Learn more: SQL Database

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a Disk- or Memory-Only Storage?
            .faqbox__anwser.h5.pt-3 Both
            .faqbox__text.pt-3
                p Native persistence in&nbsp;Ignite can be&nbsp;turned on&nbsp;and off. This allows Ignite to&nbsp;store data sets bigger than can fit in&nbsp;the available memory.
                p Essentially, smaller operational data sets can be&nbsp;stored in-memory only, and larger data sets that do&nbsp;not fit in&nbsp;memory can be&nbsp;stored on&nbsp;disk, using memory as&nbsp;a&nbsp;caching layer for better performance.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/arch/native-persistence.html") Learn more: Native Persistence

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a NoSQL Database?
            .faqbox__anwser.h5.pt-3 Not exactly
            .faqbox__text.pt-3
                p Just like other NoSQL databases, Ignite is&nbsp;highly available and horizontally scalable.
                p However, unlike other NoSQL databases, Ignite supports SQL and ACID transactions across multiple cluster nodes.
        
        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a Transactional Database?
            .faqbox__anwser.h5.pt-3 Not fully
            .faqbox__text.pt-3
                p ACID Transactions are supported, but only at&nbsp;key-value API level. Ignite also supports cross-partition transactions, which means that transactions can span keys residing in&nbsp;different partitions on&nbsp;different servers.
                p At&nbsp;SQL level, Ignite supports atomic, but not yet transactional consistency. SQL transactions implementation is&nbsp;already <a href="https://cwiki.apache.org/confluence/display/IGNITE/IEP-3%3A+Transactional+SQL" target="_blank">in&nbsp;the works</a> and will be&nbsp;released in&nbsp;Ignite&nbsp;3.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/features/acid-transactions.html") Learn more: ACID Transactions

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a Multi-Model Database?
            .faqbox__anwser.h5.pt-3 Yes
            .faqbox__text.pt-3
                p Ignite supports both key-value and SQL for modelling and accessing data. 
                p In&nbsp;addition, Ignite provides strong processing APIs for computing on&nbsp;distributed data.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/in-memory-database.html") Learn more: In-Memory Database

        article.faqbox.cardsimple
            .faqbox__itemtitle.h5 Is Ignite a Key-Value Store?
            .faqbox__anwser.h5.pt-3 Yes
            .faqbox__text.pt-3
                p Ignite provides a&nbsp;feature-rich key-value API, that is&nbsp;JCache (JSR-107) compliant and supports Java, C++, .NET, and other programming languages.
            .cardsimple__bottom
                a.cardsimple__button.button.button--shadow(href="/use-cases/key-value-store.html") Learn more: Distributed Key-Value Store
    // /.faqboxs
  


    section.toolingend
        .container.flexi
            .toolingend__main
                h2.toolingend__title.h4 Ready to Start With Apache Ignite?
                p.fz20.pt-1x Start with our Quick Start Guides and build your first application <br>in 5-10 minutes
            .toolingend__action
                a.button Build your first application