<!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</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.9" />
    <link rel="stylesheet" href="/css/utils.css?ver=0.9" />
    <link rel="stylesheet" href="/css/site.css?ver=0.9" />
    <link rel="stylesheet" href="../js/vendor/highlight/default.min.css?ver=0.9" />
    <link rel="stylesheet" href="../js/vendor/highlight/night-owl.css?ver=0.9" />
    <link rel="stylesheet" href="../js/vendor/swiper/swiper-bundle.min.css?ver=0.9" />
    <link rel="stylesheet" href="../css/native-persistence.css?ver=0.9" />
    <link rel="stylesheet" href="../css/events.css?ver=0.9" />
    <link rel="stylesheet" href="../css/tooling.css?ver=0.9" />
    <link rel="stylesheet" href="../css/frontpage.css?ver=0.9" />
    <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.9" media="only screen and (max-width:1199px)" />
    <link rel="icon" type="image/png" href="/img/favicon.png" />
    <!-- Global site tag (gtag.js) - Google Analytics -->
    <script async src="https://www.googletagmanager.com/gtag/js?id=UA-61232409-1"></script>
    <script>
      window.dataLayer = window.dataLayer || [];
      function gtag() {
        dataLayer.push(arguments);
      }
      gtag('js', new Date());
      gtag('config', 'UA-61232409-1');
    </script>

    <!-- Yandex.Metrika counter -->
    <script type="text/javascript">
      (function (m, e, t, r, i, k, a) {
        m[i] =
          m[i] ||
          function () {
            (m[i].a = m[i].a || []).push(arguments);
          };
        m[i].l = 1 * new Date();
        (k = e.createElement(t)), (a = e.getElementsByTagName(t)[0]), (k.async = 1), (k.src = r), a.parentNode.insertBefore(k, a);
      })(window, document, 'script', 'https://mc.yandex.ru/metrika/tag.js', 'ym');

      ym(72949126, 'init', {
        clickmap: true,
        trackLinks: true,
        accurateTrackBounce: true,
        webvisor: true,
      });
    </script>
    <noscript
      ><div><img src="https://mc.yandex.ru/watch/72949126" style="position: absolute; left: -9999px" alt="" /></div
    ></noscript>

    <!-- /Yandex.Metrika counter -->
  </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="/docs/latest/">Quick Start</a>
                  </li>
                  <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>
                      <li>
                        <a href="/use-cases.html">View All</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>
                      <li>
                        <a href="/features/index.html">View All</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="/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__white 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.cgi">Download Ignite 2.11.1</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">MULTI-TIER 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">ESSENTIAL 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>
      <img class="fronttop__pic" src="/img/frontpage/hero-white.svg" alt="" />
      <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 For <br />High&#8209;Performance Applications <br />With In&#8209;Memory Speed</h1>
            <div class="innerhero__h2 h4 pt-2">Scale Across Memory And Disk Without Compromise</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 speed up and scale applications used by millions of&nbsp;people daily</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">Application 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>
        </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>
        </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>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">Apache Ignite, Load Reduction and System Scaling for Banking</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/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/004.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="/images/promos/ignite-Summit-cloud-edition--After-banner-375px.jpg" media="(max-width: 767px)" />
          <img src="/images/promos/ignite-Summit-cloud-edition--After-banner.jpg" alt="Ignite Summit watch on demand" /></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>
          <a class="frontresitem flexi frontresitem--black" href="/resources.html#technical">
            <div class="frontresitem__icon"><img src="/img/frontpage/res-docs.svg" alt="" /></div>
            <div class="frontresitem__text">Apache Ignite technical documentation</div></a
          ><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>
          <a class="frontresitem flexi frontresitem--red" href="/resources.html#learning">
            <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></a
          ><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 with building high&#8209;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&#8209;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">Real-Streaming APIs</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="/our-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
            ><a class="footer4__soc" href="https://www.meetup.com/Apache-Ignite-Virtual-Meetup/" target="_blank"><img src="/img/icon-meetup-black.png" alt="" /></a>
          </div>
          <a class="footer4__button button" href="https://ignite.apache.org/docs/latest/index">Start Using 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.9"></script>
  </body>
</html>
