blob: ae95682b5558dba5596417889d1466729125e91e [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.4.0/javadoc/org/apache/ignite/DataRegionMetrics.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Generated by javadoc (1.8.0_77) on Mon Mar 05 10:43:11 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>DataRegionMetrics (Ignite 2.4.0)</title>
<meta name="date" content="2018-03-05">
<link rel="stylesheet" type="text/css" href="../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../script.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="DataRegionMetrics (Ignite 2.4.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":6,"i1":6,"i2":6,"i3":6,"i4":6,"i5":6,"i6":6,"i7":6,"i8":6,"i9":6,"i10":6,"i11":6,"i12":6,"i13":6,"i14":6};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract Methods"]};
var altColor = "altColor";
var rowColor = "rowColor";
var tableTab = "tableTab";
var activeTableTab = "activeTableTab";
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar.top">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.top" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.top.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DataRegionMetrics.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Ignite - In-Memory Data Fabric</div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../org/apache/ignite/DataRegionMetricsAdapter.html" title="class in org.apache.ignite"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/ignite/DataRegionMetrics.html" target="_top">Frames</a></li>
<li><a href="DataRegionMetrics.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite</div>
<h2 title="Interface DataRegionMetrics" class="title">Interface DataRegionMetrics</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Known Subinterfaces:</dt>
<dd><a href="../../../org/apache/ignite/mxbean/DataRegionMetricsMXBean.html" title="interface in org.apache.ignite.mxbean">DataRegionMetricsMXBean</a></dd>
</dl>
<hr>
<br>
<pre>public interface <span class="typeNameLabel">DataRegionMetrics</span></pre>
<div class="block">This interface provides page memory related metrics of a specific Apache Ignite node. The overall page memory
architecture is covered in <a href="../../../org/apache/ignite/configuration/DataStorageConfiguration.html" title="class in org.apache.ignite.configuration"><code>DataStorageConfiguration</code></a>.
<p>
Since there are can be several memory regions configured with <a href="../../../org/apache/ignite/configuration/DataRegionConfiguration.html" title="class in org.apache.ignite.configuration"><code>DataRegionConfiguration</code></a> on an individual
Apache Ignite node, the metrics for every region will be collected and obtained separately.
<p>
There are two ways to get the metrics of an Apache Ignite node.
<ol>
<li>
First, a collection of the metrics can be obtained through <a href="../../../org/apache/ignite/Ignite.html#dataRegionMetrics--"><code>Ignite.dataRegionMetrics()</code></a> method. Note that
the method returns data region metrics snapshots rather than just in time memory state.
</li>
<li>
Second, all <a href="../../../org/apache/ignite/DataRegionMetrics.html" title="interface in org.apache.ignite"><code>DataRegionMetrics</code></a> of a local Apache Ignite node are visible through JMX interface. Refer to
<a href="../../../org/apache/ignite/mxbean/DataRegionMetricsMXBean.html" title="interface in org.apache.ignite.mxbean"><code>DataRegionMetricsMXBean</code></a> for more details.
</li>
</ol>
</p>
<p>
Data region metrics collection is not a free operation and might affect performance of an application. This is the reason
why the metrics are turned off by default. To enable the collection you can use both
<a href="../../../org/apache/ignite/configuration/DataRegionConfiguration.html#setMetricsEnabled-boolean-"><code>DataRegionConfiguration.setMetricsEnabled(boolean)</code></a> configuration property or
<a href="../../../org/apache/ignite/mxbean/DataRegionMetricsMXBean.html#enableMetrics--"><code>DataRegionMetricsMXBean.enableMetrics()</code></a> method of a respective JMX bean.</div>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr id="i0" class="altColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getAllocationRate--">getAllocationRate</a></span>()</code>
<div class="block">Gets pages allocation rate of a memory region.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getCheckpointBufferPages--">getCheckpointBufferPages</a></span>()</code>
<div class="block">Gets checkpoint buffer size in pages.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getCheckpointBufferSize--">getCheckpointBufferSize</a></span>()</code>
<div class="block">Gets checkpoint buffer size in bytes.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getDirtyPages--">getDirtyPages</a></span>()</code>
<div class="block">Gets the number of dirty pages (pages which contents is different from the current persistent storage state).</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getEvictionRate--">getEvictionRate</a></span>()</code>
<div class="block">Gets eviction rate of a given memory region.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getLargeEntriesPagesPercentage--">getLargeEntriesPagesPercentage</a></span>()</code>
<div class="block">Gets percentage of pages that are fully occupied by large entries that go beyond page size.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getName--">getName</a></span>()</code>
<div class="block">A name of a memory region the metrics are collected for.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getPagesFillFactor--">getPagesFillFactor</a></span>()</code>
<div class="block">Gets the percentage of the used space.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getPageSize--">getPageSize</a></span>()</code>
<div class="block">Gets memory page size.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getPagesReplaceAge--">getPagesReplaceAge</a></span>()</code>
<div class="block">Gets average age (in milliseconds) for the pages being replaced from the disk storage.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>float</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getPagesReplaceRate--">getPagesReplaceRate</a></span>()</code>
<div class="block">Gets rate (pages per second) at which pages get replaced with other pages from persistent storage.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getPhysicalMemoryPages--">getPhysicalMemoryPages</a></span>()</code>
<div class="block">Gets total number of pages currently loaded to the RAM.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getPhysicalMemorySize--">getPhysicalMemorySize</a></span>()</code>
<div class="block">Gets total size of pages loaded to the RAM.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getTotalAllocatedPages--">getTotalAllocatedPages</a></span>()</code>
<div class="block">Gets a total number of allocated pages related to the data region.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>long</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../org/apache/ignite/DataRegionMetrics.html#getTotalAllocatedSize--">getTotalAllocatedSize</a></span>()</code>
<div class="block">Gets a total size of memory allocated in the data region.</div>
</td>
</tr>
</table>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="getName--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getName</h4>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;getName()</pre>
<div class="block">A name of a memory region the metrics are collected for.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Name of the memory region.</dd>
</dl>
</li>
</ul>
<a name="getTotalAllocatedPages--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalAllocatedPages</h4>
<pre>long&nbsp;getTotalAllocatedPages()</pre>
<div class="block">Gets a total number of allocated pages related to the data region. When persistence is disabled, this
metric shows the total number of pages in memory. When persistence is enabled, this metric shows the
total number of pages in memory and on disk.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total number of allocated pages.</dd>
</dl>
</li>
</ul>
<a name="getTotalAllocatedSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getTotalAllocatedSize</h4>
<pre>long&nbsp;getTotalAllocatedSize()</pre>
<div class="block">Gets a total size of memory allocated in the data region. When persistence is disabled, this
metric shows the total size of pages in memory. When persistence is enabled, this metric shows the
total size of pages in memory and on disk.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total size of memory allocated, in bytes.</dd>
</dl>
</li>
</ul>
<a name="getAllocationRate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAllocationRate</h4>
<pre>float&nbsp;getAllocationRate()</pre>
<div class="block">Gets pages allocation rate of a memory region.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of allocated pages per second.</dd>
</dl>
</li>
</ul>
<a name="getEvictionRate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getEvictionRate</h4>
<pre>float&nbsp;getEvictionRate()</pre>
<div class="block">Gets eviction rate of a given memory region.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of evicted pages per second.</dd>
</dl>
</li>
</ul>
<a name="getLargeEntriesPagesPercentage--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getLargeEntriesPagesPercentage</h4>
<pre>float&nbsp;getLargeEntriesPagesPercentage()</pre>
<div class="block">Gets percentage of pages that are fully occupied by large entries that go beyond page size. The large entities
are split into fragments in a way so that each fragment can fit into a single page.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Percentage of pages fully occupied by large entities.</dd>
</dl>
</li>
</ul>
<a name="getPagesFillFactor--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPagesFillFactor</h4>
<pre>float&nbsp;getPagesFillFactor()</pre>
<div class="block">Gets the percentage of the used space.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>The percentage of the used space.</dd>
</dl>
</li>
</ul>
<a name="getDirtyPages--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getDirtyPages</h4>
<pre>long&nbsp;getDirtyPages()</pre>
<div class="block">Gets the number of dirty pages (pages which contents is different from the current persistent storage state).
This metric is enabled only for Ignite nodes with enabled persistence.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Current number of dirty pages.</dd>
</dl>
</li>
</ul>
<a name="getPagesReplaceRate--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPagesReplaceRate</h4>
<pre>float&nbsp;getPagesReplaceRate()</pre>
<div class="block">Gets rate (pages per second) at which pages get replaced with other pages from persistent storage.
The rate effectively represents the rate at which pages get 'evicted' in favor of newly needed pages.
This metric is enabled only for Ignite nodes with enabled persistence.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Pages per second replace rate.</dd>
</dl>
</li>
</ul>
<a name="getPagesReplaceAge--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPagesReplaceAge</h4>
<pre>float&nbsp;getPagesReplaceAge()</pre>
<div class="block">Gets average age (in milliseconds) for the pages being replaced from the disk storage.
This number effectively represents the average time between the moment when a page is read
from the disk and the time when the page is evicted. Note that if a page is never evicted, it does
not contribute to this metric.
This metric is enabled only for Ignite nodes with enabled persistence.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Replaced pages age in milliseconds.</dd>
</dl>
</li>
</ul>
<a name="getPhysicalMemoryPages--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPhysicalMemoryPages</h4>
<pre>long&nbsp;getPhysicalMemoryPages()</pre>
<div class="block">Gets total number of pages currently loaded to the RAM. When persistence is disabled, this metric is equal
to <a href="../../../org/apache/ignite/DataRegionMetrics.html#getTotalAllocatedPages--"><code>getTotalAllocatedPages()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total number of pages loaded to RAM.</dd>
</dl>
</li>
</ul>
<a name="getPhysicalMemorySize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPhysicalMemorySize</h4>
<pre>long&nbsp;getPhysicalMemorySize()</pre>
<div class="block">Gets total size of pages loaded to the RAM. When persistence is disabled, this metric is equal
to <a href="../../../org/apache/ignite/DataRegionMetrics.html#getTotalAllocatedSize--"><code>getTotalAllocatedSize()</code></a>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total size of pages loaded to RAM in bytes.</dd>
</dl>
</li>
</ul>
<a name="getCheckpointBufferPages--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCheckpointBufferPages</h4>
<pre>long&nbsp;getCheckpointBufferPages()</pre>
<div class="block">Gets checkpoint buffer size in pages.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Checkpoint buffer size in pages.</dd>
</dl>
</li>
</ul>
<a name="getCheckpointBufferSize--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getCheckpointBufferSize</h4>
<pre>long&nbsp;getCheckpointBufferSize()</pre>
<div class="block">Gets checkpoint buffer size in bytes.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Checkpoint buffer size in bytes.</dd>
</dl>
</li>
</ul>
<a name="getPageSize--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>getPageSize</h4>
<pre>int&nbsp;getPageSize()</pre>
<div class="block">Gets memory page size.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Page size in bytes.</dd>
</dl>
</li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
</div>
<!-- ========= END OF CLASS DATA ========= -->
<!-- ======= START OF BOTTOM NAVBAR ====== -->
<div class="bottomNav"><a name="navbar.bottom">
<!-- -->
</a>
<div class="skipNav"><a href="#skip.navbar.bottom" title="Skip navigation links">Skip navigation links</a></div>
<a name="navbar.bottom.firstrow">
<!-- -->
</a>
<ul class="navList" title="Navigation">
<li><a href="../../../overview-summary.html">Overview</a></li>
<li><a href="package-summary.html">Package</a></li>
<li class="navBarCell1Rev">Class</li>
<li><a href="class-use/DataRegionMetrics.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../index-all.html">Index</a></li>
<li><a href="../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Ignite - In-Memory Data Fabric</div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../org/apache/ignite/DataRegionMetricsAdapter.html" title="class in org.apache.ignite"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../index.html?org/apache/ignite/DataRegionMetrics.html" target="_top">Frames</a></li>
<li><a href="DataRegionMetrics.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2018 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Fabric</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.4.0</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; March 5 2018 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>