blog/apache-ignite-2-17-0.html (537 lines of code) (raw):

<!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>Apache Ignite 2.17 Release: What’s New</title> <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="../css/blog.css?ver=0.9" /> <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" /> <!-- Matomo --> <script> var _paq = (window._paq = window._paq || []); /* tracker methods like "setCustomDimension" should be called before "trackPageView" */ _paq.push(['setDoNotTrack', true]); _paq.push(['disableCookies']); _paq.push(['trackPageView']); _paq.push(['enableLinkTracking']); (function () { var u = 'https://analytics.apache.org/'; _paq.push(['setTrackerUrl', u + 'matomo.php']); _paq.push(['setSiteId', '77']); var d = document, g = d.createElement('script'), s = d.getElementsByTagName('script')[0]; g.async = true; g.src = u + 'matomo.js'; s.parentNode.insertBefore(g, s); })(); </script> <!-- End Matomo Code --> </head> <body> <!-- 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 class="hystmodal__close" data-hystclose="">Close</button> <div class="mobmenu__wrap"> <a class="mobmenu__logo" href="/"><img src="/img/logo.svg" alt="Logo" /></a> <div class="mobmenu__menu"> <ul> <li><a href="/docs/latest/">Quick Start</a></li> <li><a href="/resources.html#learning">Learning resources</a></li> <li><a href="/resources.html#training">Training and Courses</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="/resources.html">Resources</a></li> <li><a href="/blog/">Blog</a></li> <li><a href="/docs/latest/">Docs</a></li> </ul> <a class="button mobmenu__button" href="/download.cgi">Download Ignite</a> </div> <!-- //mobmenu__menu--> </div> <!-- //mobmenu__wrap--> </div> <!-- //mobmenu--> </div> </div> <!-- MOBILE MENU END--> <header class="hdr hdr__white jsHdrBase"> <div class="jsHdrLine"> <div id="promotion-bar"> <a href="https://ignite-summit.org/2025/?utm_medium=website-direct&amp;utm_source=apache_ignite&amp;utm_term=ignite-summit&amp;utm_content=event-hosted&amp;utm_campaign=2023-06-06-ignite-summit-nam" target="_blank" title="Ignite Summit 2025" rel="noopener noreferrer" >Ignite Summit 2025 — Watch on demand &nbsp;<span class="more d-none d-lg-block"><img src="/images/promos/arrow-white.svg" /></span ></a> </div> <div class="hdr__wrap flexi"> <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</a> <nav class="hdrmenu"> <ul class="flexi"> <li class="js-hasdrop"><a class="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 class="js-hasdrop"><a class="hdrmenu--expanded" href="/resources.html" data-panel="resources">Resources</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#learning"><span>Learning resources</span></a> </li> <li> <a class="dropmenu__iconitem" href="/resources.html#training"><span>Training and Courses</span></a> </li> <li> <a class="dropmenu__iconitem" href="/faq.html"><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 class="dropmenu__panel" data-menupanel="resources"> <div class="container dropmenu1__grid"> <div class="dropmenu1__buttonwrap">&nbsp;</div> <div class="dropmenu__box dropmenu__box--buttonin"> <a class="dropmenu__redbutton blog" href="/blog/"><img src="/img/menu/icon-blog.svg" alt="" /><span>Blog</span></a> <ul class="dropmenu__menu"> <li> <a class="dropmenu__iconitem" href="/resources.html#technical"><span>Technical resources</span></a> </li> <li> <a class="dropmenu__iconitem" href="/resources.html#learning"><span>Learning resources</span></a> </li> </ul> </div> <div class="dropmenu__box blog"> <ul class="dropmenu__menu"> <li> <a class="dropmenu__iconitem" href="/resources.html#training"><span>Training and Courses</span></a> </li> <li> <a class="dropmenu__iconitem" href="/resources.html#book"><span>Apache Ignite Book</span></a> </li> <li> <a class="dropmenu__iconitem" href="/resources.html#mail"><span>Mailing Lists, Forums And Discussion Archives</span></a> </li> <li> <a class="dropmenu__iconitem" href="/faq.html"><span>FAQ</span></a> </li> </ul> </div> </div> <!-- /.dropmenu1__grid--> </div> <!-- /.dropmenu__panel--> </div> <!-- /.dropmeu--> </div> </div> </header> <div class="dropmenu__back"></div> <header class="hdrfloat hdr__white jsHdrFloatBase"></header> <div class="container blog"> <section class="blog__header post_page__header"> <a href="/blog/">← Apache Ignite Blog</a> <h1>Apache Ignite 2.17 Release: What’s New</h1> <p> February 13, 2025 by <strong>Nikita Amelchev. Share in </strong><a href="http://www.facebook.com/sharer.php?u=https://ignite.apache.org/blog/undefined">Facebook</a><span>, </span ><a href="http://twitter.com/home?status=Apache Ignite 2.17 Release: What’s New%20https://ignite.apache.org/blog/undefined">Twitter</a> </p> </section> <div class="blog__content"> <main class="blog_main"> <section class="blog__posts"> <article class="post"> <div> <p> We are happy to announce the release of <a href="https://ignite.apache.org/">Apache Ignite </a>2.17.0! In this latest version, the Ignite community has introduced a range of new features and improvements to deliver a more efficient, flexible, and future-proof platform. Below, we’ll cover the key highlights that you can look forward to when upgrading to the new release. </p> <!-- end --> <h3 id="migrate-to-java-11">Migrating to Java 11</h3> <p> Ignite 2.17 has officially moved its codebase to Java 11. With Java 8 approaching end-of-life (for public updates) and many organizations already moving to newer Java versions, this change enables Ignite to take advantage of modern language features, improved performance, and security enhancements. By upgrading Ignite to this latest release, you can ensure your cluster runs on a more up-to-date and secure Java environment. </p> <h3 id="transaction-aware-sql">Transaction-Aware SQL and Scan Queries</h3> <p>Apache Ignite provides multiple interfaces to query data, including:</p> <ul> <li>Key-Value API.</li> <li>SQL.</li> <li>Scan query.</li> <li>Index scan query.</li> </ul> <p> While Ignite has long supported ACID transactions for the Key-Value API, there has been a known limitation when it comes to data queries: changes made within an ongoing transaction were not visible to SQL or Scan queries. This could lead to inconsistencies when querying data inside a transaction. </p> <p>With the release of Apache Ignite 2.17, we are excited to introduce transaction-aware SQL and Scan queries, a significant enhancement that improves consistency and isolation when querying data within transactions.</p> <p><b>NOTE: </b>This feature is currently supported only for the Calcite SQL engine and at the `READ_COMMITTED` isolation level.</p> <p>To enable this feature, set the `txAwareQueriesEnabled` property in the `TransactionConfiguration`. Once enabled, your SQL and Scan queries will reflect transaction-related changes in real-time.</p> <p>Here’s an example of how it works:</p> <code class="lang-java"> <pre> try (Transaction tx = srv.transactions().txStart(PESSIMISTIC, READ_COMMITTED)) { cache.put(1, 2); List&lt;List&lt;?&gt;&gt; sqlData = executeSql(srv, &quot;SELECT COUNT(*) FROM TBL.TBL&quot;); List&lt;Entry&lt;Integer, Integer&gt;&gt; scanData = cache.query(new ScanQuery&lt;Integer, Integer&gt;()).getAll(); assertEquals(&quot;Must see transaction related data&quot;, 1L, sqlData.get(0).get(0)); assertEquals(&quot;Must see transaction related data&quot;, 1, scanData.size()); tx.commit(); }</pre > </code> <h3 id="control-utility-migrates-to-thin-client">Control Utility Switches to Thin Client Protocol</h3> <p>Starting from Apache Ignite version 2.17, the utility by default uses a connection through the thin client protocol (configured on a node via `ClientConnectorConfiguration`).</p> <p>With the default configuration of Ignite, no migration actions will be required. Additional configuration of the connector is no longer necessary.</p> <p> In some cases, a few actions may be required to migrate user scripts using the utility. See more in <a href="https://ignite.apache.org/docs/latest/tools/control-script#migration-to-the-thin-client-protocol">documentation</a>. It’s important to note that connection via Binary-REST protocol (configured via `ConnectorConfiguration`) has been deprecated and is planned to be removed in future releases. </p> <h3 id="custom-user-defined-metrics">Custom User-Defined Metrics</h3> <p> You can now create custom user-defined metrics in Ignite 2.17. This feature allows you to gather and expose metric data specific to the needs of your application. You can perform in-depth monitoring and troubleshooting by tracking those metrics that matter most to you. Here is example of usage: </p> <code class="lang-java"> <pre> Ignite ignite = Ignition.ignite(); ignite.metrics() .getOrCreate(&quot;app-metric-registry&quot;) .register(&quot;Status&quot;, () -&gt; appStatus.get(), &quot;Application status.&quot;);</pre > </code> <h3 id="calcite-sql-engine">Calcite SQL Engine</h3> <p> The Apache Ignite community continues to enhance the SQL experience, and the latest updates to the <a href="https://ignite.apache.org/docs/latest/SQL/sql-calcite">Calcite SQL engine </a>bring several powerful features and improvements! </p> <p> Updates include support for bitwise operations and aggregates (e.g., `BIT_AND`, `BIT_OR`, `BIT_XOR`), arithmetic overflow handling, date formatting/parsing with custom formats, and join type hints for better query optimization. Additionally, the Calcite engine now supports grouping by aliases and ordinal values, providing more flexibility in query design. </p> <p>Looking ahead, the Ignite community has big plans for Calcite. The goal is to make Calcite the default SQL engine in future releases, deprecating the legacy H2-based engine.</p> <h3 id="java-thin-client-enhancements">Java Thin Client Enhancements: `invoke()` and `invokeAll()`</h3> <p>In this release, the Java thin client adds entry processor methods that will simplify how you interact with Ignite clusters: `invoke()` and `invokeAll()`.</p> <p> An entry processor is used to process cache entries on the nodes where they are stored. An entry processor does not require the entry to be transferred to the client in order to perform an operation on it. The operation is performed remotely, and only the results are transmitted to the client. </p> <p>Here is example of an operation:</p> <code class="lang-java"> <pre> ClientCache&lt;Integer, Integer&gt; cache = client.getOrCreateCache(&quot;myCache&quot;); cache.invoke(0, new IncrementProcessor());</pre > </code> <p><b>NOTE: </b>The classes of the entry processors must be available on the server nodes of the cluster.</p> <h3 id="anything-else">Anything else?</h3> <p>See the <a href="https://ignite.apache.org/releases/2.17.0/release_notes.html">release notes </a>to learn about all of the new features and improvements.</p> <p>Reach out to us on the community user list for more questions, details, and feedback.</p> <p>Sincerely yours, Ignite contributors and committers</p> </div> </article> <section class="blog__footer"> <ul class="pagination post_page"> <li><a href="/blog/database">database</a></li> <li><a href="/blog/ignite">ignite</a></li> <li><a href="/blog/in">in</a></li> <li><a href="/blog/memory">memory</a></li> <li><a href="/blog/open">open</a></li> <li><a href="/blog/source">source</a></li> <li><a href="/blog/release">release</a></li> </ul> </section> </section> </main> <aside class="blog__sidebar"> <ul> <li><a href="/blog/apache">apache</a></li> <li><a href="/blog/ignite">ignite</a></li> <li><a href="/blog/release">release</a></li> <li><a href="/blog/database">database</a></li> <li><a href="/blog/in">in</a></li> <li><a href="/blog/memory">memory</a></li> <li><a href="/blog/open">open</a></li> <li><a href="/blog/source">source</a></li> <li><a href="/blog/.NET">.NET</a></li> <li><a href="/blog/security">security</a></li> <li><a href="/blog/Intel">Intel</a></li> <li><a href="/blog/CET">CET</a></li> <li><a href="/blog/linq">linq</a></li> <li><a href="/blog/SQL">SQL</a></li> <li><a href="/blog/performance">performance</a></li> <li><a href="/blog/csharp">csharp</a></li> <li><a href="/blog/in-memory">in-memory</a></li> <li><a href="/blog/open-source">open-source</a></li> <li><a href="/blog/log4j2">log4j2</a></li> <li><a href="/blog/bigdata">bigdata</a></li> <li><a href="/blog/computing">computing</a></li> <li><a href="/blog/two">two</a></li> <li><a href="/blog/learning">learning</a></li> <li><a href="/blog/machine">machine</a></li> <li><a href="/blog/spark">spark</a></li> <li><a href="/blog/sql">sql</a></li> <li><a href="/blog/data">data</a></li> <li><a href="/blog/fast">fast</a></li> <li><a href="/blog/nodal">nodal</a></li> <li><a href="/blog/meltdown">meltdown</a></li> <li><a href="/blog/spectre">spectre</a></li> <li><a href="/blog/key-value">key-value</a></li> <li><a href="/blog/store">store</a></li> <li><a href="/blog/meetup">meetup</a></li> <li><a href="/blog/biodata">biodata</a></li> <li><a href="/blog/rdbms">rdbms</a></li> <li><a href="/blog/grid">grid</a></li> <li><a href="/blog/imdb">imdb</a></li> </ul> </aside> </div> </div> <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 - 2024 <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>