<!DOCTYPE html>
<html lang="en">
  <head>
    <meta charset="UTF-8" />
    <meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1" />
    <title>Distributed Database - Apache Ignite&reg;</title>
    <meta name="description" content="Apache Ignite is a best distributed database management system for high-performance computing with in-memory speed. Learn how to use the Ignite decentralized database system and get started." />
    <link rel="canonical" href="https://ignite.apache.org/" />
    <meta property="og:title" content="Distributed Database - Apache Ignite&amp;reg;" />
    <meta property="og:type" content="article" />
    <meta property="og:url" content="https://ignite.apache.org/" />
    <meta property="og:image" content="/img/og-pic.png" />
    <meta property="og:description" content="Apache Ignite is a best distributed database management system for high-performance computing with in-memory speed. Learn how to use the Ignite decentralized database system and get started." />
    <link rel="stylesheet" href="/js/vendor/hystmodal/hystmodal.min.css?ver=0.4" />
    <link rel="stylesheet" href="/css/utils.css?ver=0.4" />
    <link rel="stylesheet" href="/css/site.css?ver=0.4" />
    <link rel="stylesheet" href="../js/vendor/highlight/default.min.css?ver=0.4" />
    <link rel="stylesheet" href="../js/vendor/highlight/night-owl.css?ver=0.4" />
    <link rel="stylesheet" href="../js/vendor/swiper/swiper-bundle.min.css?ver=0.4" />
    <link rel="stylesheet" href="../css/native-persistence.css?ver=0.4" />
    <link rel="stylesheet" href="../css/events.css?ver=0.4" />
    <link rel="stylesheet" href="../css/tooling.css?ver=0.4" />
    <link rel="stylesheet" href="../css/frontpage.css?ver=0.4" />
    <script src="../js/vendor/highlight/highlight.min.js"></script>
    <script src="../js/vendor/swiper/swiper-bundle.min.js"></script>
    <link rel="stylesheet" href="/css/media.css?ver=0.4" media="only screen and (max-width:1199px)" />
    <link rel="icon" type="image/png" href="/img/favicon.png" />
  </head>
  <body>
    <div class="fronttop">
      <!-- MOBILE MENU START -->
      <div class="hystmodal" id="jsMenuModal" aria-hidden="true">
        <div class="hystmodal__wrap">
          <div class="hystmodal__window mobmenu" role="dialog" aria-modal="true">
            <button data-hystclose class="hystmodal__close">Close</button>
            <div class="mobmenu__wrap">
              <a href="/" class="mobmenu__logo"><img src="/img/logo.svg" alt="Логотип" /></a>
              <div class="mobmenu__menu">
                <ul>
                  <li>
                    <a href="/resources.html">Resources</a>
                  </li>
                  <li>
                    <a href="/faq.html">FAQ</a>
                  </li>
                  <li>
                    <span class="mobmenu__parent"> <a href="/use-cases.html">Use Cases</a><button class="mobmenu__opener"></button> </span>
                    <ul>
                      <li>
                        <a href="/use-cases/in-memory-cache.html">In-Memory Cache</a>
                      </li>
                      <li>
                        <a href="/use-cases/in-memory-data-grid.html">In-Memory Data Grid</a>
                      </li>
                      <li>
                        <a href="/use-cases/in-memory-database.html">In-Memory Database</a>
                      </li>
                      <li>
                        <a href="/use-cases/key-value-store.html">Key-Value Store</a>
                      </li>
                      <li>
                        <a href="/use-cases/high-performance-computing.html">High Performance Computing</a>
                      </li>
                      <li>
                        <a href="/use-cases/digital-integration-hub.html">Digital Integration Hub</a>
                      </li>
                      <li>
                        <a href="/use-cases/spark-acceleration.html">Spark Acceleration</a>
                      </li>
                      <li>
                        <a href="/use-cases/hadoop-acceleration.html">Hadoop Acceleration</a>
                      </li>
                    </ul>
                  </li>

                  <li>
                    <span class="mobmenu__parent"> <a href="/features/">Features</a><button class="mobmenu__opener"></button> </span>
                    <ul>
                      <li>
                        <a href="/arch/multi-tier-storage.html">Multi-Tier Storage</a>
                      </li>
                      <li>
                        <a href="/arch/native-persistence.html">Native Persistence</a>
                      </li>
                      <li>
                        <a href="/features/sql.html">Distributed SQL</a>
                      </li>
                      <li>
                        <a href="/features/key-value-apis.html">Key-Value APIs</a>
                      </li>
                      <li>
                        <a href="/features/acid-transactions.html">ACID Transactions</a>
                      </li>
                      <li>
                        <a href="/features/compute-apis.html">Compute APIs</a>
                      </li>
                      <li>
                        <a href="/features/service-apis.html">Services</a>
                      </li>
                      <li>
                        <a href="/features/machinelearning.html">Machine Learning</a>
                      </li>
                      <li>
                        <a href="/features/streaming.html">Real-Time Streaming APIs</a>
                      </li>
                      <li>
                        <a href="/docs/latest/messaging">Messaging</a>
                      </li>
                      <li>
                        <a href="/docs/latest/key-value-api/continuous-queries">Continuous Queries</a>
                      </li>
                    </ul>
                  </li>

                  <li>
                    <a href="/community.html">Community</a>
                    <ul class="isdefault">
                      <li><a href="/community.html">Project Info</a></li>
                      <li><a href="/events.html">Events</a></li>
                    </ul>
                  </li>
                  <li>
                    <a href="/use-cases/provenusecases.html">Powered by</a>
                  </li>
                  <li>
                    <a href="/docs/latest/">Docs</a>
                  </li>
                </ul>
                <a href="/docs/latest/" class="mobmenu__quikstart bluelink">Quick Start</a>
                <a href="/download.cgi" class="button mobmenu__button">Download Ignite 2.11</a>
              </div>
              <!-- //mobmenu__menu -->
            </div>
            <!-- //mobmenu__wrap -->
          </div>
          <!-- //mobmenu -->
        </div>
      </div>
      <!-- MOBILE MENU END -->
      <header class="hdr hdr__dark jsHdrBase">
        <div class="hdr__wrap flexi jsHdrLine">
          <button class="hdr__burger" data-menumodal="#jsMenuModal"><img src="/img/menu.svg" alt="" /></button
          ><a class="hdr__logo" href="/"><img class="hdr__logoimg hdr__logo--white" src="/img/logo-white.svg" alt="" /><img class="hdr__logoimg hdr__logo--black" src="/img/logo.svg" alt="" /></a
          ><a class="button hdr__button" href="/download.html">Download Ignite 2.11 </a>
          <nav class="hdrmenu">
            <ul class="flexi">
              <li class="js-hasdrop"><a class="hdrmenu__current hdrmenu--expanded" href="/" data-panel="getStarted">Get Started</a></li>
              <li class="js-hasdrop"><a class="hdrmenu--expanded" href="/features" data-panel="features">Features</a></li>
              <li class="js-hasdrop"><a class="hdrmenu--expanded" href="/community.html" data-panel="community">Community</a></li>
              <li><a href="/use-cases/provenusecases.html" data-panel="">Powered By</a></li>
              <li><a href="///ignite.apache.org/docs/latest/" data-panel="">Docs</a></li>
            </ul>
          </nav>
          <div class="dropmenu">
            <div class="dropmenu__panel" data-menupanel="getStarted">
              <div class="container dropmenu1__grid">
                <div class="dropmenu1__buttonwrap">&nbsp;</div>
                <div class="dropmenu__box dropmenu__box--buttonin">
                  <a class="dropmenu__redbutton" href="https://ignite.apache.org/docs/latest/"> <img src="/img/menu/icon-red-rocket.svg" alt="" /><span>Quick Start Guide</span></a>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/resources.html"><img src="/img/menu/icon-resources.svg" alt="" /><span>Resources</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/faq.html"><img src="/img/menu/icon-question.svg" alt="" /><span>FAQ</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box">
                  <p class="capstext"><a class="dropmenu__capslink" href="/use-cases.html">USE CASES</a></p>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/in-memory-cache.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Cache</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/in-memory-data-grid.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Data Grid</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/in-memory-database.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>In-Memory Database</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/key-value-store.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Key-Value Store</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box no-border">
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/high-performance-computing.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>High-Performance Computing</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/digital-integration-hub.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Digital Integration Hub</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/spark-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Spark Acceleration</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/use-cases/hadoop-acceleration.html"><img src="/img/menu/icon-folder.svg" alt="" /><span>Hadoop Acceleration</span></a>
                    </li>
                  </ul>
                </div>
              </div>
              <!-- /.dropmenu1__grid-->
              <div class="panelmorelinkwrap panelmorelinkwrap--end container"><a class="panellink" href="/use-cases.html">View all</a></div>
            </div>
            <!-- /.dropmenu__panel-->
            <div class="dropmenu__panel" data-menupanel="features">
              <div class="container dropmenu2__grid">
                <div class="dropmenu__box">
                  <div class="capstext">Distributed Multi-Tiered <br />Storage</div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/arch/multi-tier-storage.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Multi-Tier Storage</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/arch/native-persistence.html"><img src="/img/menu/icon-db.svg" alt="" /><span>Native Persistence</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box">
                  <div class="capstext">Essentail Developer APIs</div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/features/sql.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Distributed SQL</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/features/key-value-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Key-Value APIs</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/features/acid-transactions.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>ACID Transactions</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box">
                  <div class="capstext">High-Performance <br />Computing APIs</div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/features/compute-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Compute APIs</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/features/service-apis.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Services</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/features/machinelearning.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Machine Learning</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box">
                  <div class="capstext">Real Streaming APIs</div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/features/streaming.html"><img src="/img/menu/icon-cube.svg" alt="" /><span>Real-Time Streaming APIs</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/messaging"><img src="/img/menu/icon-cube.svg" alt="" /><span>Messaging</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries"><img src="/img/menu/icon-cube.svg" alt="" /><span>Continuous Queries</span></a>
                    </li>
                  </ul>
                </div>
              </div>
              <!-- /.dropmenu2__grid-->
              <div class="panelmorelinkwrap"><a class="panellink" href="/features/">View all</a></div>
            </div>
            <!-- /.dropmenu__panel-2-->
            <div class="dropmenu__panel" data-menupanel="community">
              <div class="container dropmenu3__grid">
                <div class="dropmenu__box">
                  <div class="capstext"><a class="dropmenu__capslink" href="/community.html">Project Info</a></div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/community.html#story"><img src="/img/menu/icon-clip.svg" alt="" /><span>Apache Ignite Story</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/community.html#community"><img src="/img/menu/icon-comment.svg" alt="" /><span>Meet The Community</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box no-border">
                  <div class="capstext">&nbsp;</div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/community.html#contributing"><img src="/img/menu/icon-puzzle.svg" alt="" /><span>Start Contributing</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/community.html#faq"><img src="/img/menu/icon-question.svg" alt="" /><span>Ask Questions</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box">
                  <div class="capstext"><a class="dropmenu__capslink" href="/events.html">Events</a></div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/events.html#summit"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Apache Ignite Summit</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/events.html#meetups"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Meetups</span></a>
                    </li>
                  </ul>
                </div>
                <div class="dropmenu__box no-border">
                  <div class="capstext">&nbsp;</div>
                  <ul class="dropmenu__menu">
                    <li>
                      <a class="dropmenu__iconitem" href="/events.html#upcoming"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Upcoming Events</span></a>
                    </li>
                    <li>
                      <a class="dropmenu__iconitem" href="/events.html#past"><img src="/img/menu/icon-calendar.svg" alt="" /><span>Past Events</span></a>
                    </li>
                  </ul>
                </div>
              </div>
              <!-- /.dropmenu3__grid-->
            </div>
            <!-- /.dropmenu__panel-->
          </div>
          <!-- /.dropmeu-->
        </div>
      </header>
      <div class="dropmenu__back"></div>
      <header class="hdrfloat hdr__white jsHdrFloatBase"></header>
      <section class="innerhero fronthero">
        <div class="container innerhero__cont">
          <div class="innerhero__main innerhero__main--long">
            <h1 class="h1 innerhero__h1 innerhero__mega">Distributed Database <br />For High-Performance Computing</h1>
            <div class="innerhero__h2 h4 pt-2">Scale Across Memory And Disk With No Compromises</div>
            <div class="innerhero__action pt-5"><a class="button fronthero__button" href="https://ignite.apache.org/docs/latest/index">Start Coding</a></div>
          </div>
        </div>
      </section>
      <!-- /.innerhero-->
    </div>
    <section class="frontblue">
      <aside class="fronttopcards flexi container">
        <a class="frontcard" href="https://blogs.apache.org/ignite/entry/apache-ignite-momentum-highlights-from" target="_blank"
          ><div class="frontcard__title h5">A top-5 project of the Apache Software <br />Foundation</div>
          <div class="frontcard__prises pt-3 flexi">
            <div class="frontcard__price flexi">
              <div class="frontcard__iconwrap"><img src="/img/frontpage/b1-prize1.svg" alt="" /></div>
              <span>Big Data <br />Users Lists</span>
            </div>
            <div class="frontcard__price flexi">
              <div class="frontcard__iconwrap frontcard__iconwrap--blue"><img src="/img/frontpage/b1-prize1.svg" alt="" /></div>
              <span>Users Lists</span>
            </div>
            <div class="frontcard__price flexi">
              <div class="frontcard__iconwrap frontcard__iconwrap--grey"><img src="/img/frontpage/b1-prize1.svg" alt="" /></div>
              <span>Dev Lists</span>
            </div>
          </div></a
        ><!-- /.frontcard--><a class="frontcard" href="/use-cases/provenusecases.html"
          ><div class="frontcard__network"><img src="/img/frontpage/b1-planet.svg" alt="" /></div>
          <div class="frontcard__title h5 pt-3">Leading companies around the world select Ignite to&nbsp;power applications used daily by millions of&nbsp;people</div></a
        ><!-- /.frontcard-->
      </aside>
      <!-- /.fronttopcards-->
      <div class="container forntcodes">
        <h2 class="h3">Use Ignite Core Capabilities To Start Easily <br />And Scale Faster</h2>
        <div class="forntcodes__wrap flexi jsTabWrap pt-4">
          <div class="forntcodes__menu">
            <ul class="fz20">
              <li><a class="active" href="#" data-ftablink="frontcode-1">Multi-Tier Storage</a></li>
              <li><a href="#" data-ftablink="frontcode-2">Distributed SQL</a></li>
              <li><a href="#" data-ftablink="frontcode-3">ACID Transactions</a></li>
              <li><a href="#" data-ftablink="frontcode-4">Compute APIs</a></li>
              <li><a href="#" data-ftablink="frontcode-5">Machine Learning</a></li>
              <li><a href="#" data-ftablink="frontcode-6">Continuous Queries</a></li>
            </ul>
            <a class="forntcodes__menumore fz20" href="/features/">View all features</a>
          </div>
          <div class="forntcodes__tabwraps">
            <div class="forntcodes__tab active" data-ftab="frontcode-1">
              <p class="forntcodes__tabtitle fz20 pb-1">Multi-Tier Storage</p>
              <p>
                Ignite scales up and out across memory and disk. By default, Ignite operates in a pure in-memory mode. But, by toggling a single configuration setting, you can turn a cluster into a database that can grow beyond the
                cluster's memory capacity:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi">
                  <a class="nativecode__link active" href="#" data-tablink="nativeTabXML">XML</a><a class="nativecode__link" href="#" data-tablink="nativeTabJava">Java</a
                  ><a class="nativecode__link" href="#" data-tablink="nativeTabNET">C#/.NET</a>
                </div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="nativeTabXML">
                    <pre class="nativecode__codebox"> <code class="xml">&lt;bean class=&quot;org.apache.ignite.configuration.IgniteConfiguration&quot;&gt;
    &lt;property name=&quot;dataStorageConfiguration&quot;&gt;
        &lt;bean class=&quot;org.apache.ignite.configuration.DataStorageConfiguration&quot;&gt;
            &lt;property name=&quot;defaultDataRegionConfiguration&quot;&gt;
                &lt;bean class=&quot;org.apache.ignite.configuration.DataRegionConfiguration&quot;&gt;
                    &lt;property name=&quot;persistenceEnabled&quot; value=&quot;true&quot;/&gt;
                &lt;/bean&gt;
            &lt;/property&gt;
        &lt;/bean&gt;
    &lt;/property&gt;
&lt;/bean&gt;</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="nativeTabJava">
                    <pre class="nativecode__codebox"> <code class="java">IgniteConfiguration cfg = new IgniteConfiguration();

DataStorageConfiguration storageCfg = new DataStorageConfiguration();

// Enable Ignite Persistence
storageCfg.getDefaultDataRegionConfiguration().setPersistenceEnabled(true);

// Using the new storage configuration
cfg.setDataStorageConfiguration(storageCfg);
</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="nativeTabNET">
                    <pre class="nativecode__codebox"> <code class="csharp">var cfg = new IgniteConfiguration
{
    DataStorageConfiguration = new DataStorageConfiguration
    {
        DefaultDataRegionConfiguration = new DataRegionConfiguration
        {
            Name = &quot;Default_Region&quot;,
            PersistenceEnabled = true
        }
    }
};
</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/arch/multi-tier-storage.html">Learn More About Multi-Tier Storage</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab1 (END Multi-Tier Storage)-->
            <div class="forntcodes__tab" data-ftab="frontcode-2">
              <p class="forntcodes__tabtitle fz20 pb-1">Distributed SQL</p>
              <p>
                Use Ignite as a traditional SQL database by leveraging JDBC drivers, ODBC drivers, or the native SQL APIs that are available for Java, C#, C++, Python, and other programming languages. Seamlessly join, group, aggregate, and
                order your distributed in-memory and on-disk data:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="sqlTabSQL">SQL</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="sqlTabSQL">
                    <pre class="nativecode__codebox"> <code class="sql">SELECT country.name, city.name, MAX(city.population) as max_pop
FROM country JOIN city ON city.countrycode = country.code
WHERE country.code IN ('USA','BRA','ESP','JPN')
GROUP BY country.name, city.name
ORDER BY max_pop DESC LIMIT 3;</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/sql.html">Learn More About Distributed SQL</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab2 (END Distributed SQL)-->
            <div class="forntcodes__tab" data-ftab="frontcode-3">
              <p class="forntcodes__tabtitle fz20 pb-1">ACID Transactions</p>
              <p>Ignite can operate in a strongly consistent mode that provides full support for distributed ACID transactions. Transact across multiple cluster nodes, caches, tables, and partitions:</p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="acidTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="acidTabSharp">C#/.NET</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="acidTabJava">
                    <pre class="nativecode__codebox"> <code class="java">IgniteTransactions transactions = ignite.transactions();

try (Transaction tx = transactions.txStart()) {
    Integer hello = cache.get(&quot;Hello&quot;);

    if (hello == 1)
        cache.put(&quot;Hello&quot;, 11);

    cache.put(&quot;World&quot;, 22);

    tx.commit();
}</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="acidTabSharp">
                    <pre class="nativecode__codebox"> <code class="csharp">var transactions = ignite.GetTransactions();

using (var tx = transactions.TxStart()) {
    int hello = cache.Get(&quot;Hello&quot;);

    if (hello == 1) {
        cache.Put(&quot;Hello&quot;, 11);
    }

    cache.Put(&quot;World&quot;, 22);

    tx.Commit();
}</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/acid-transactions.html">Learn More About Transactions</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab3 (END ACID Transactions)-->
            <div class="forntcodes__tab" data-ftab="frontcode-4">
              <p class="forntcodes__tabtitle fz20 pb-1">Compute APIs In Java, Scala, Kotlin, C#, C++</p>
              <p>
                With traditional databases, for in-place calculations, you use stored procedures that are written in a language such as PL/SQL. With Ignite, you use modern JVM languages, C# or C++ to develop and execute custom tasks across
                your distributed database:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="compTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="compTabSharp">C#/.NET</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="compTabJava">
                    <pre class="nativecode__codebox"> <code class="java">// Broadcast the task to server nodes only.
IgniteCompute compute = ignite.compute(ignite.cluster().forServers());

// Each remote server node will execute the logic of the task/lambda below.
compute.broadcast(() -&gt; System.out.println(
    &quot;Hello Node: &quot; + ignite.cluster().localNode().id()));</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="compTabSharp">
                    <pre class="nativecode__codebox"> <code class="csharp">// Broadcast the task to server nodes only.
var compute = ignite.GetCluster().ForServers().GetCompute();

// Each remote server node will execute the custom PrintNodeIdAction task.
compute.Broadcast(new PrintNodeIdAction());</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/compute-apis.html">Learn More About Compute APIs</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab4 (END Compute APIs)-->
            <div class="forntcodes__tab" data-ftab="frontcode-5">
              <p class="forntcodes__tabtitle fz20 pb-1">Built-In Machine Learning</p>
              <p>
                Ignite machine learning uses built-in algorithms and tools, as well as TensorFlow integration, to enable the building of scalable machine learning models and avoid costly data transfers. Train, deploy, evaluate, and update
                your ML and DL models continuously and at scale:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="machineTabJava">Java</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="machineTabJava">
                    <pre class="nativecode__codebox"> <code class="java">// Create the trainer
KNNClassificationTrainer trainer = new KNNClassificationTrainer()
.withK(3).withIdxType(SpatialIndexType.BALL_TREE)
.withDistanceMeasure(new EuclideanDistance())
.withWeighted(true);

// Train the model
KNNClassificationModel knnMdl = trainer.fit(ignite, dataCache, vectorizer);

// Make a prediction
double prediction = knnMdl.predict(observation);</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="/features/machinelearning.html">Learn More About Machine Learning</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab5 (END Machine Learning)-->
            <div class="forntcodes__tab" data-ftab="frontcode-6">
              <p class="forntcodes__tabtitle fz20 pb-1">Continuous Queries</p>
              <p>
                With relational databases, you use triggers to react to certain events. With Ignite, you deploy continuous queries that are written in a modern programming language such as Java or C# and process streams of changes on the
                database and application side:
              </p>
              <div class="forntcodes__innertabs jsTabWrap">
                <div class="nativecode__tabctrls flexi"><a class="nativecode__link active" href="#" data-tablink="contTabJava">Java</a><a class="nativecode__link" href="#" data-tablink="contTabSharp">C#/.NET</a></div>
                <div class="nativecode__tabs">
                  <div class="nativecode__tab active" data-tab="contTabJava">
                    <pre class="nativecode__codebox"> <code class="java">ContinuousQuery qry = new ContinuousQuery&lt;&gt;();

// The callback that will be triggered on the application side.
qry.setLocalListener(new MyLocalListener());

// The callback that will be executed on the server side.
qry.setRemoteFilterFactory(new MyRemoteFilterFactory());

// Deploy the query in the cluster.
cache.query(query);</code></pre>
                  </div>
                  <div class="nativecode__tab" data-tab="contTabSharp">
                    <pre class="nativecode__codebox"> <code class="csharp">var cache = ignite.GetOrCreateCache(&quot;myCache&quot;);

var query = new ContinuousQuery(
    new MyLocalListener(), // Will be triggered on the application side.
    new MyRemoteFilter()); // Will be executed on the server side.

// Deploy the query in the cluster.
var handle = cache.QueryContinuous(query);</code></pre>
                  </div>
                </div>
                <div class="forntcodes__bottom"><a class="button" href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries" target="_blank">Learn More About Continuous Queries</a></div>
              </div>
              <!-- /.forntcodes__innertabs-->
            </div>
            <!-- /.forntcodes__tab6 (END Continuous Queries)-->
          </div>
        </div>
      </div>
      <!-- /.forntcodes-->
    </section>
    <!-- /.frontblue-->
    <section class="frontnewcards container">
      <h2 class="h3">New To Ignite? <br />Three Primary Usage Scenarios</h2>
      <div class="frontnewcards__wrap pt-5">
        <article class="frontsimplecard cardsimple">
          <h4 class="cardsimple__title">Applications Acceleration <br />& Scale Out</h4>
          <div class="cardsimple__text cardsimple__text--long">
            Accelerate your existing applications by&nbsp;100x using Ignite as&nbsp;an&nbsp;in-memory cache or&nbsp;in-memory data grid that is&nbsp;deployed over one or&nbsp;more external databases.
          </div>
          <div class="cardsimple__bottom"><a class="cardsimple__button button button--shadow" href="/use-cases/#usecase2">Learn More</a></div>
        </article>
        <article class="frontsimplecard cardsimple">
          <h4 class="cardsimple__title">Distributed Database For <br />HTAP Workloads</h4>
          <div class="cardsimple__text cardsimple__text--long">Build applications that support transactional and&nbsp;analytical workloads by&nbsp;using Ignite as&nbsp;a&nbsp;database that scales beyond available memory capacity.</div>
          <div class="cardsimple__bottom"><a class="cardsimple__button button button--shadow" href="/use-cases/#database">Learn More</a></div>
        </article>
        <article class="frontsimplecard cardsimple">
          <h4 class="cardsimple__title">Digital Integration Hub<br />&nbsp;</h4>
          <div class="cardsimple__text cardsimple__text--long">Create an&nbsp;advanced platform architecture that aggregates multiple back-end systems and databases into a&nbsp;low-latency and shared data store.</div>
          <div class="cardsimple__bottom"><a class="cardsimple__button button button--shadow" href="/use-cases/digital-integration-hub.html">Learn More</a></div>
        </article>
      </div>
    </section>
    <!-- /.frontnewcards-->
    <section class="frontstories container">
      <h2 class="h3">Ignite User Stories</h2>
      <ul class="frontstories__checkers pt-5 capstext">
        <li>Software & SaaS</li>
        <li>Banking</li>
        <li>Logistics & Transportation</li>
        <li>Financial Services</li>
        <li>Retail</li>
        <li>Biotech</li>
        <li>And others</li>
      </ul>
      <div class="frontstories__sliderwrap">
        <button class="ctrl ctrl--prev"><img src="/img/frontpage/icon-slider-arrow.svg" alt="" /></button><button class="ctrl ctrl--next"><img src="/img/frontpage/icon-slider-arrow.svg" alt="" /></button>
        <div class="swiper jsFrontVideosSwiper">
          <div class="swiper-wrapper">
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=3FFexcYIpmA" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Leveraging In&nbsp;Memory Compute Grids With Core Systems Of&nbsp;Record</span><img src="/img/poweredby/videos/001.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=Mhtt2QL_qCQ" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--black comvideo__txt--small">How To&nbsp;Use Apache Ignite To&nbsp;Rescue The Backend Of&nbsp;A&nbsp;Bank</span><img src="/img/poweredby/videos/002.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=z28rthKIrDk" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">S9D Using Apache Ignite As&nbsp;A&nbsp;Part Of&nbsp;Real Time Campaigning</span><img src="/img/poweredby/videos/003.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/" target="_blank"
                    ><span class="comvideo__txt comvideo__txt--small">In-Memory Computing Patterns For High Volume, Real Time Applications</span><img src="/img/poweredby/videos/005.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=EdFOKJIjRSg" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Fitness + In Memory Computing = Getting Ahead Of The Game</span><img src="/img/poweredby/videos/008.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=jF9T2cJB6t0" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--black comvideo__txt--small">High Performance Exposure Management With Apache Ignite</span><img src="/img/poweredby/videos/009.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=_mnZQ3JDcn8" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--black comvideo__txt--small">Ignite Success Story: How Ignite Fuels The High Throughput Messaging In&nbsp;Sentienz Akiro</span><img src="/img/poweredby/videos/014.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://techblog.yahoo.co.jp/oss/yahoo_shopping_purchases_ignite/" target="_blank"
                    ><span class="comvideo__txt comvideo__txt--small">&laquo;Recent Purchases&raquo; With Apache Ignite</span><img src="/img/poweredby/videos/004.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
            <div class="swiper-slide">
              <article class="comvideo">
                <div class="comvideo__box">
                  <a class="comvideo__screen" href="https://www.youtube.com/watch?v=CPmwnjDJ1Sk" data-youtube="data-youtube"
                    ><span class="comvideo__txt comvideo__txt--small">Embracing The Service Consumption Shift In&nbsp;Banking</span><img src="/img/poweredby/videos/006.png" alt=""
                  /></a>
                </div>
                <div class="comvideo__descr pt-1"></div>
              </article>
            </div>
          </div>
        </div>
        <div class="frontstories__pag"></div>
      </div>
      <div class="frontstories__bottom pt-5"><a class="button button--shadow" href="/use-cases/provenusecases.html">Watch Other Stories</a></div>
    </section>
    <!-- /.frontstories-->
    <section class="frontconfs container">
      <h2 class="h3">Join The Community At Events <br />And Meetups Worldwide</h2>
      <div class="frontconfs__wrap">
        <a class="frontconfcard frontconfcard--red" href="https://www.meetup.com/ru-RU/Apache-Ignite-Virtual-Meetup/" target="_blank"
          ><div class="frontconfs__iconwrap pb-3"><img src="/img/frontpage/events/001.svg" alt="" /></div>
          <h4 class="h5 frontconfcard__title pb-2">Ignite Virtual Meetup</h4>
          <p>Experts and practitioners give <strong>online-talks and presentations</strong> and share their Apache Ignite experience.</p>
          <div class="frontconfcard__bottom">
            <p class="capstext">Online</p>
            <div class="frontconfcard__cal">Regularly</div>
          </div></a
        ><a class="frontconfcard frontconfcard--blue" href="https://ignite-summit.org/" target="_blank"
          ><div class="frontconfs__iconwrap pb-3"><img src="/img/frontpage/events/002.svg" alt="" /></div>
          <h4 class="h5 frontconfcard__title pb-2">Ignite Summit</h4>
          <p>This <strong>virtual conference</strong> is a chance to learn more about up-to-date in-memory computing solutions.</p>
          <p>There are speakers from industry-leading companies and hundreds of participants from all over the world.</p>
          <div class="frontconfcard__bottom">
            <p class="capstext">Online</p>
            <div class="frontconfcard__cal">Annually</div>
          </div></a
        ><a class="frontconfcard" href="/events.html#upcoming" target="_blank"
          ><div class="frontconfs__iconwrap pb-3"><img src="/img/frontpage/events/003.svg" alt="" /></div>
          <h4 class="h5 frontconfcard__title pb-2">Other Events</h4>
          <p>Join us for <strong>conferences, presentations, and webinars</strong> to learn more about in-memory computing technologies.</p>
          <div class="frontconfcard__bottom">
            <p class="capstext">ONLINE <small>and</small> OFFLINE</p>
            <div class="frontconfcard__cal">Regularly</div>
          </div></a
        >
      </div>
      <div class="frontconfs__bottom pt-5"><a class="button button--shadow" href="/events.html">View All Events</a></div>
    </section>
    <!-- /.frontconfs-->
    <section class="event-featured container fronteventsbanner">
      <p class="capstext">Featured Event</p>
      <a class="event-featured__banner pt-5" href="https://ignite-summit.org/schedule/" target="_blank"
        ><picture
          ><source srcset="/img/events/event-banner-vert.jpg" media="(max-width: 767px)" />
          <img src="/img/events/event-banner.jpg" alt="" /></picture
      ></a>
    </section>
    <!-- /.event-featured-->
    <section class="frontresourse container">
      <h2 class="h3">Resources To Elevate Your <br />Ignite Experience</h2>
      <div class="frontresourse__subtitle pt-2">Get access to a variety of free technical <br />and learning resources</div>
      <div class="frontresourse__wrap flexi fz20">
        <div class="frontresourse__col">
          <div class="capstext pb-5">Technical resources</div>
          <div class="frontresitem flexi frontresitem--black">
            <div class="frontresitem__icon"><img src="/img/frontpage/res-docs.svg" alt="" /></div>
            <div class="frontresitem__text">Apache Ignite technical documentation</div>
          </div>
          <a class="frontresitem flexi frontresitem--gray" href="https://cwiki.apache.org/confluence/display/IGNITE/" target="_blank"
            ><div class="frontresitem__icon"><img src="/img/frontpage/res-wiki.svg" alt="" /></div>
            <div class="frontresitem__text">Ignite Wiki with a collection of low-level design documents and instructions</div></a
          ><a class="frontresitem flexi frontresitem--gray" href="/resources.html#git"
            ><div class="frontresitem__icon"><img src="/img/icon-github.svg" alt="" /></div>
            <div class="frontresitem__text">Git repositories with Ignite source code and code samples and examples</div></a
          >
        </div>
        <div class="frontresourse__col">
          <div class="capstext pb-5">Learning resources</div>
          <div class="frontresitem flexi frontresitem--red">
            <div class="frontresitem__icon"><img src="/img/frontpage/res-videos.svg" alt="" /></div>
            <div class="frontresitem__text">Dozens of essential videos and webinar <br />recordings</div>
          </div>
          <a class="frontresitem flexi frontresitem--rose" href="/resources.html#training"
            ><div class="frontresitem__icon"><img src="/img/frontpage/res-vebinar.svg" alt="" /></div>
            <div class="frontresitem__text">Trainings and courses that help building high-performance and data-intensive applications with&nbsp;the Apache Ignite</div></a
          ><a class="frontresitem flexi frontresitem--rose" href="https://www.shamimbhuiyan.com/ignitebook" target="_blank"
            ><div class="frontresitem__icon"><img src="/img/frontpage/res-book.svg" alt="" /></div>
            <div class="frontresitem__text">Apache Ignite book to expand your knowledge <br />in in-memory computing and distributed databases</div></a
          >
        </div>
      </div>
      <div class="frontconfs__bottom pt-5"><a class="button button--shadow" href="/resources.html">View All Resources</a></div>
    </section>
    <section class="toolingend toolingend--front">
      <div class="container flexi">
        <div class="toolingend__main">
          <p class="toolingend__title h3"><strong>Ready To Start?</strong></p>
          <p class="h5 pt-2">Discover our quick start guides and build your first <br />application in 5-10 minutes</p>
        </div>
        <div class="toolingend__action"><a class="button" href="https://ignite.apache.org/docs/latest/" target="_blank">Discover Quick Start Guide</a></div>
      </div>
    </section>
    <footer class="footer">
      <div class="container footer__top">
        <section class="footer1">
          <a class="footer__title" href="/features/">Features</a>
          <ul class="footer__menu">
            <li><a href="/arch/multi-tier-storage.html">Multi-Tier Storage</a></li>
            <li><a href="/arch/native-persistence.html">Native Persistence</a></li>
            <li><a href="/features/sql.html">Distributed SQL</a></li>
            <li><a href="/features/acid-transactions.html">ACID Transactions</a></li>
            <li><a href="/features/key-value-apis.html">Key Value APIs</a></li>
            <li><a href="/features/compute-apis.html">Compute APIs</a></li>
            <li><a href="/features/machinelearning.html">Machine Learning</a></li>
            <li><a href="/features/service-apis.html">Services</a></li>
            <li><a href="/features/streaming.html">Streaming</a></li>
            <li><a href="https://ignite.apache.org/docs/latest/key-value-api/continuous-queries">Continuous Queries</a></li>
            <li><a href="https://ignite.apache.org/docs/latest/messaging">Messaging</a></li>
          </ul>
        </section>
        <section class="footer2">
          <a class="footer__title" href="/use-cases/">Use-Cases</a>
          <ul class="footer__menu">
            <li><a href="/use-cases/in-memory-cache.html">In-Memory Cache</a></li>
            <li><a href="/use-cases/in-memory-data-grid.html">In-Memory Data Grid</a></li>
            <li><a href="/use-cases/in-memory-database.html">In-Memory Database</a></li>
            <li><a href="/use-cases/high-performance-computing.html">High-Performance Computing</a></li>
            <li><a href="/use-cases/digital-integration-hub.html">Digital Integration Hub</a></li>
            <li><a href="/use-cases/key-value-store.html">Key-Value Store</a></li>
            <li><a href="/use-cases/spark-acceleration.html">Apache Spark Acceleration</a></li>
            <li><a href="/use-cases/hadoop-acceleration.html">Apache Hadoop Acceleration</a></li>
          </ul>
        </section>
        <section class="footer3"><a class="footer__title" href="/community.html">Community</a><a class="footer__title" href="/resources.html">Resources</a><a class="footer__title" href="/events.html">Events</a></section>
        <section class="footer4">
          <div class="footer4__item">Join Our <a href="mailto:dev@ignite.apache.org">Dev Mailing List</a></div>
          <div class="footer4__item pt-2">Or write your question</div>
          <div class="footer4__item pt-1">user@ignite.apache.org</div>
          <div class="footer4__item pt-5">Follow Us:</div>
          <div class="footer4__socwrap flexi pt-2">
            <a class="footer4__soc" href="https://github.com/apache/ignite" target="_blank"><img src="/img/icon-github.svg" alt="" /></a
            ><a class="footer4__soc" href="https://www.linkedin.com/showcase/apache-ignite/" target="_blank"><img src="/img/icon-linkedin.svg" alt="" /></a
            ><a class="footer4__soc" href="https://twitter.com/apacheignite" target="_blank"><img src="/img/icon-twitter.svg" alt="" /></a>
          </div>
          <a class="footer4__button button" href="https://ignite.apache.org/docs/latest/index">Start Uing Apache Ignite </a>
        </section>
      </div>
      <div class="container footer__bot">
        <p>© 2015 - 2021 <a href="http://www.apache.org/">The Apache Software Foundation.</a></p>
        <p class="pt-1x">Apache, Apache Ignite, the Apache feather and the Apache Ignite logo are either registered trademarks or trademarks of The Apache Software Foundation</p>
        <p class="pt-1x"><a href="http://apache.org/foundation/policies/privacy.html">Privacy Policy</a></p>
      </div>
    </footer>
    <a class="scrollTop" href="#"
      ><svg class="feather feather-chevron-up" xmlns="http://www.w3.org/2000/svg" width="24" height="24" viewbox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round">
        <polyline points="18 15 12 9 6 15"></polyline></svg
    ></a>
    <script src="/js/vendor/hystmodal/hystmodal.min.js"></script>
    <script src="/js/vendor/smoothscroll.js"></script>
    <script src="/js/main.js?ver=0.4"></script>
  </body>
</html>
