| <!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.11: Stabilization First</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"><!-- 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><!-- 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="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 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.15.0</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__current 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"> </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"> </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"> </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"> </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></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.11: Stabilization First</h1><p>September 20, 2021 by <strong>Maxim Muzafarov: </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.11: Stabilization First%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>The new <a href="https://ignite.apache.org/">Apache Ignite</a> 2.11 was released on September 17, 2021. It can be considered to be a greater |
| extent as a stabilization release that closed a number of technical debts of the internal architecture and bugs. Out of more than |
| 200 completed tasks, 120 are bug fixes. However, some valuable improvements still exist, so let's take a quick look at them together.</p><h3 id="thin-clients">Thin Clients</h3><p>Partition awareness is enabled by default in the 2.11 release and allows thin clients to send query requests directly to the |
| node that owns the queried data. Without partition awareness, an application executes all queries and operations via |
| a single server node that acts as a proxy for the incoming requests.</p><p>The support of <a href="https://ignite.apache.org/docs/latest/thin-clients/java-thin-client#cache-entry-listening">Continuous Queries</a>added to the java thin client. For the other supported features, you can check - |
| the <a href="https://cwiki.apache.org/confluence/display/IGNITE/Thin+clients+features">List of Thin Client Features</a>.</p><!-- end --><h3 id="cellular-clusters-deployment">Cellular-clusters Deployment</h3><p>The Apache Ignite internals has the so-called <em>switch</em> (a part of Partition Map Exchange) process that is used to perform |
| atomic execution of cluster-wide operations and move a cluster from one consistent state to another, for example, a cache creation/destroy, |
| a node JOIN/LEFT/FAIL operations, snapshot creation, etc. During the switching process, all user transactions are parked for a small |
| period of time which in turn increases the average latency and decreases throughput of the overall cluster.</p><p>Splitting the cluster into virtual cells containing 4-8 nodes may increase the total cluster performance and minimize the |
| influence of one cell on another in case of node fail events. Such a technique also significantly increases the recovery speed of |
| transactions on cells not affected by failing nodes. The time when transactions are parked also decreases on non-affected cells which |
| in turn decreases the worst latency for the cluster operations overall.</p><p>From now on, you can use the <em>RendezvousAffinityFunction</em> affinity function with <em>ClusterNodeAttributeColocatedBackupFilter</em> to |
| group nodes into virtual cells. Since the node baseline attributes are used as cell markers the corresponding <a href="https://ignite.apache.org/docs/latest/monitoring-metrics/system-views#baseline_node_attributes">BASELINE_NODE_ATTRIBUTES</a> system |
| view was added.</p><p>See benchmarks below that represent the worst (max) latency, which happens in case of node left/failure/timeout events on broken |
| and alive cells.</p><a href="/img/blog/ec8a7800-01e9-4910-aaa9-0e27ea2d4303.png"><img src="/img/blog/ec8a7800-01e9-4910-aaa9-0e27ea2d4303.png" alt="723rhosidfgu4787fh9sdhf.png" width="50%"/></a><h3 id="new-page-replacement-policies">New Page Replacement Policies</h3><p>When Native Persistence is on and the amount of data, which Ignite stores on the disk, is bigger than the off-heap memory amount |
| allocated for the data region, another page should be evicted from the off-heap to the disk to preload a page from the disk to |
| the completely full off-heap memory. This process is called page replacement. Previously, Apache Ignite used the Random-LRU page |
| replacement algorithm which has a low maintenance cost, but it has many disadvantages and greatly affects the performance when |
| the page replacement is started. On some deployments, administrators even force a cluster restart periodically to avoid page |
| replacement. There are a few new algorithms available from now on:</p><ul><li>Segmented-LRU Algorithm</li><li>CLOCK Algorithm</li></ul><p>Page replacement algorithm can be configured by the <em>PageReplacementMode</em> property of <em>DataRegionConfiguration</em>. By default, |
| the CLOCK algorithm is now used. You can check the <a href="https://ignite.apache.org/docs/latest/memory-configuration/replacement-policies">Replacement Policies</a> in the documentation |
| for more details.</p><h3 id="snapshot-restore-and-check-commands">Snapshot Restore And Check Commands</h3><h4 id="check">Check</h4><p>All snapshots are fully consistent in terms of concurrent cluster-wide operations as well as ongoing changes with Ignite. |
| However, in some cases and for your own peace of mind, it may be necessary to check the snapshot for completeness and |
| for data consistency. The Apache Ignite is now delivered with a built-in snapshot consistency check commands that enable you to |
| verify internal data consistency, calculate data partitions hashes and pages checksums, and print out the result if a problem |
| is found. The check command also compares hashes calculated by containing keys of primary partitions with corresponding backup |
| partitions and reports any differences.</p><code> <pre># This procedure does not require the cluster to be in the idle state.</pre><pre>control.(sh|bat) --snapshot check snapshot_name</pre></code><h4 id="restore">Restore</h4><p>Previously, only the manual snapshot restore procedure was available by fully copying persistence data files from the |
| snapshot directory to the Apache Ignite <em>work</em> directory. The automatic restore procedure allows you to restore cache groups from |
| a snapshot on an active cluster by using the Java API or command line script (using CLI is recommended). Currently, the restore |
| procedure has several limitations, so please check the documentation pages for details.</p><code> <pre>Start restoring all user-created cache groups from the snapshot "snapshot_09062021".</pre><pre>control.(sh|bat) --snapshot restore snapshot_09062021 --start</pre><br/><pre># Start restoring only "cache-group1" and "cache-group2" from the snapshot "snapshot_09062021".</pre><pre>control.(sh|bat) --snapshot restore snapshot_09062021 --start cache-group1,cache-group2</pre><br/><pre># Get the status of the restore operation for "snapshot_09062021".</pre><pre>control.(sh|bat) --snapshot restore snapshot_09062021 --status</pre><br/><pre># Cancel the restore operation for "snapshot_09062021".</pre><pre>control.(sh|bat) --snapshot restore snapshot_09062021 --cancel</pre></code></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-memory">in-memory</a></li><li><a href="/blog/open-source">open-source</a></li><li><a href="/blog/release">release</a></li></ul></section></section></main><aside class="blog__sidebar"><ul><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><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/apache">apache</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/performance">performance</a></li><li><a href="/blog/security">security</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 - 2023 <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> |