blob: 8617618044a535703509ed99e014fe577fc38ce8 [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>
<!-- 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 -->
<script type='text/javascript'>
window.__lo_site_id = 284467;
(function() {
var wa = document.createElement('script'); wa.type = 'text/javascript'; wa.async = true;
wa.src = 'https://d10lpsik1i8c69.cloudfront.net/w.js';
var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(wa, s);
})();
</script>
<link rel="canonical" href="https://ignite.apache.org/releases/latest/javadoc/org/apache/ignite/cache/affinity/Affinity.html" />
<!-- Generated by javadoc (1.8.0_261) on Wed Dec 09 14:33:09 MSK 2020 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Affinity (Ignite 2.9.1)</title>
<meta name="date" content="2020-12-09">
<link rel="stylesheet" type="text/css" href="../../../../../stylesheet.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<link rel='shortcut icon' href='https://ignite.apache.org/favicon.ico'/>
<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="Affinity (Ignite 2.9.1)";
}
}
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/Affinity.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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityCentralizedFunction.html" title="annotation in org.apache.ignite.cache.affinity"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/cache/affinity/Affinity.html" target="_top">Frames</a></li>
<li><a href="Affinity.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.cache.affinity</div>
<h2 title="Interface Affinity" class="title">Interface Affinity<span class='angle_bracket'>&lt;</span>K<span class='angle_bracket'>&gt;</span></h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="typeNameLabel">Affinity<span class='angle_bracket'>&lt;</span>K<span class='angle_bracket'>&gt;</span></span></pre>
<div class="block">Provides affinity information to detect which node is primary and which nodes are
backups for a partitioned or replicated cache. You can get an instance of this
interface by calling <code>Ignite.affinity(cacheName)</code> method.
<p>
Mapping of a key to a node is a three-step operation. First step will get an affinity key for given key
using <a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapper.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityKeyMapper</code></a>. If mapper is not specified, the original key will be used. Second step
will map affinity key to partition using <a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#partition-java.lang.Object-"><code>AffinityFunction.partition(Object)</code></a> method. Third step
will map obtained partition to nodes for current grid topology version.
<p>
Interface provides various <code>'mapKeysToNodes(..)'</code> methods which provide node affinity mapping for
given keys. All <code>'mapKeysToNodes(..)'</code> methods are not transactional and will not enlist
keys into ongoing transaction.</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><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#affinityKey-K-">affinityKey</a></span>(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">Maps passed in key to a key which will be used for node affinity.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#allPartitions-org.apache.ignite.cluster.ClusterNode-">allPartitions</a></span>(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n)</code>
<div class="block">Gets partition ids for which given cluster node has any ownership
(either primary or backup).</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#backupPartitions-org.apache.ignite.cluster.ClusterNode-">backupPartitions</a></span>(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n)</code>
<div class="block">Gets partition ids for which given cluster node has backup ownership.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isBackup-org.apache.ignite.cluster.ClusterNode-K-">isBackup</a></span>(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n,
<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">Returns <code>true</code> if local node is one of the backup nodes for given key.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isPrimary-org.apache.ignite.cluster.ClusterNode-K-">isPrimary</a></span>(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n,
<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">Returns <code>true</code> if given node is the primary node for given key.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isPrimaryOrBackup-org.apache.ignite.cluster.ClusterNode-K-">isPrimaryOrBackup</a></span>(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n,
<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">Returns <code>true</code> if local node is primary or one of the backup nodes
This method is essentially equivalent to calling
<i>"<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isPrimary-org.apache.ignite.cluster.ClusterNode-K-"><code>isPrimary(ClusterNode, Object)</code></a> || <a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isBackup-org.apache.ignite.cluster.ClusterNode-K-"><code>isBackup(ClusterNode, Object)</code></a>)"</i>,
however it is more efficient as it makes both checks at once.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a><span class='angle_bracket'>&gt;</span><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapKeysToNodes-java.util.Collection-">mapKeysToNodes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span>? extends <a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a><span class='angle_bracket'>&gt;</span>&nbsp;keys)</code>
<div class="block">This method provides ability to detect which keys are mapped to which nodes.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>@Nullable <a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapKeyToNode-K-">mapKeyToNode</a></span>(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">This method provides ability to detect to which primary node the given key
is mapped.</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapKeyToPrimaryAndBackups-K-">mapKeyToPrimaryAndBackups</a></span>(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">Gets primary and backup nodes for the key.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapPartitionsToNodes-java.util.Collection-">mapPartitionsToNodes</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a><span class='angle_bracket'>&gt;</span>&nbsp;parts)</code>
<div class="block">Gets primary nodes for the given partitions.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapPartitionToNode-int-">mapPartitionToNode</a></span>(int&nbsp;part)</code>
<div class="block">Gets primary node for the given partition.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapPartitionToPrimaryAndBackups-int-">mapPartitionToPrimaryAndBackups</a></span>(int&nbsp;part)</code>
<div class="block">Gets primary and backup nodes for partition.</div>
</td>
</tr>
<tr id="i12" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#partition-K-">partition</a></span>(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</code>
<div class="block">Gets partition id for the given key.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#partitions--">partitions</a></span>()</code>
<div class="block">Gets number of partitions in cache according to configured affinity function.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#primaryPartitions-org.apache.ignite.cluster.ClusterNode-">primaryPartitions</a></span>(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n)</code>
<div class="block">Gets partition ids for which the given cluster node has primary ownership.</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="partitions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>partitions</h4>
<pre>int&nbsp;partitions()</pre>
<div class="block">Gets number of partitions in cache according to configured affinity function.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Number of cache partitions.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="partition-java.lang.Object-">
<!-- -->
</a><a name="partition-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>partition</h4>
<pre>int&nbsp;partition(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">Gets partition id for the given key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key to get partition id for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partition id.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="isPrimary-org.apache.ignite.cluster.ClusterNode-java.lang.Object-">
<!-- -->
</a><a name="isPrimary-org.apache.ignite.cluster.ClusterNode-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPrimary</h4>
<pre>boolean&nbsp;isPrimary(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n,
<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">Returns <code>true</code> if given node is the primary node for given key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - Node to check.</dd>
<dd><code>key</code> - Key to check.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if local node is the primary node for given key.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="isBackup-org.apache.ignite.cluster.ClusterNode-java.lang.Object-">
<!-- -->
</a><a name="isBackup-org.apache.ignite.cluster.ClusterNode-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isBackup</h4>
<pre>boolean&nbsp;isBackup(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n,
<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">Returns <code>true</code> if local node is one of the backup nodes for given key.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - Node to check.</dd>
<dd><code>key</code> - Key to check.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if local node is one of the backup nodes for given key.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="isPrimaryOrBackup-org.apache.ignite.cluster.ClusterNode-java.lang.Object-">
<!-- -->
</a><a name="isPrimaryOrBackup-org.apache.ignite.cluster.ClusterNode-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isPrimaryOrBackup</h4>
<pre>boolean&nbsp;isPrimaryOrBackup(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n,
<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">Returns <code>true</code> if local node is primary or one of the backup nodes
<p>
This method is essentially equivalent to calling
<i>"<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isPrimary-org.apache.ignite.cluster.ClusterNode-K-"><code>isPrimary(ClusterNode, Object)</code></a> || <a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isBackup-org.apache.ignite.cluster.ClusterNode-K-"><code>isBackup(ClusterNode, Object)</code></a>)"</i>,
however it is more efficient as it makes both checks at once.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - Node to check.</dd>
<dd><code>key</code> - Key to check.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if local node is primary or backup for given key.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="primaryPartitions-org.apache.ignite.cluster.ClusterNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>primaryPartitions</h4>
<pre>int[]&nbsp;primaryPartitions(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n)</pre>
<div class="block">Gets partition ids for which the given cluster node has primary ownership.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - Cluster node.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partition ids for which given cluster node has primary ownership.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="backupPartitions-org.apache.ignite.cluster.ClusterNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>backupPartitions</h4>
<pre>int[]&nbsp;backupPartitions(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n)</pre>
<div class="block">Gets partition ids for which given cluster node has backup ownership.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - Cluster node.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partition ids for which given cluster node has backup ownership.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="allPartitions-org.apache.ignite.cluster.ClusterNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>allPartitions</h4>
<pre>int[]&nbsp;allPartitions(<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;n)</pre>
<div class="block">Gets partition ids for which given cluster node has any ownership
(either primary or backup).</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>n</code> - Cluster node.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partition ids for which given cluster node has any ownership, primary or backup.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="affinityKey-java.lang.Object-">
<!-- -->
</a><a name="affinityKey-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>affinityKey</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;affinityKey(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">Maps passed in key to a key which will be used for node affinity. The affinity
key may be different from actual key if some field in the actual key was
designated for affinity mapping via <a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><code>AffinityKeyMapped</code></a> annotation
or if a custom <a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapper.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityKeyMapper</code></a> was configured.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key to map.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Key to be used for node-to-affinity mapping (may be the same
key as passed in).</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="mapKeysToNodes-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapKeysToNodes</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>,<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a><span class='angle_bracket'>&gt;</span><span class='angle_bracket'>&gt;</span>&nbsp;mapKeysToNodes(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span>? extends <a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a><span class='angle_bracket'>&gt;</span>&nbsp;keys)</pre>
<div class="block">This method provides ability to detect which keys are mapped to which nodes.
Use it to determine which nodes are storing which keys prior to sending
jobs that access these keys.
<p>
This method works as following:
<ul>
<li>For local caches it returns only local node mapped to all keys.</li>
<li>For other caches, the returned map represents node-to-key affinity.</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>keys</code> - Keys to map to nodes.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Map of nodes to keys.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="mapKeyToNode-java.lang.Object-">
<!-- -->
</a><a name="mapKeyToNode-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapKeyToNode</h4>
<pre>@Nullable
@Nullable <a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;mapKeyToNode(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">This method provides ability to detect to which primary node the given key
is mapped. Use it to determine which nodes are storing which keys prior to sending
jobs that access these keys.
<p>
This method works as following:
<ul>
<li>For local caches it returns only local node ID.</li>
<li>For other caches, primary node for the given key is returned.</li>
</ul></div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Keys to map to a node.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Primary node for the key.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="mapKeyToPrimaryAndBackups-java.lang.Object-">
<!-- -->
</a><a name="mapKeyToPrimaryAndBackups-K-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapKeyToPrimaryAndBackups</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;mapKeyToPrimaryAndBackups(<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&nbsp;key)</pre>
<div class="block">Gets primary and backup nodes for the key. Note that primary node is always
first in the returned collection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key to get affinity nodes for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Collection of primary and backup nodes for the key with primary node
always first.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
</dl>
</li>
</ul>
<a name="mapPartitionToNode-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapPartitionToNode</h4>
<pre><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;mapPartitionToNode(int&nbsp;part)</pre>
<div class="block">Gets primary node for the given partition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>part</code> - Partition id.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Primary node for the given partition.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="mapPartitionsToNodes-java.util.Collection-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapPartitionsToNodes</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>,<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;mapPartitionsToNodes(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a><span class='angle_bracket'>&gt;</span>&nbsp;parts)</pre>
<div class="block">Gets primary nodes for the given partitions.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parts</code> - Partition ids.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Mapping of given partitions to their primary nodes.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</dd>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a>,
<a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#setAffinity-org.apache.ignite.cache.affinity.AffinityFunction-"><code>CacheConfiguration.setAffinity(AffinityFunction)</code></a></dd>
</dl>
</li>
</ul>
<a name="mapPartitionToPrimaryAndBackups-int-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>mapPartitionToPrimaryAndBackups</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a><span class='angle_bracket'>&lt;</span><a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;mapPartitionToPrimaryAndBackups(int&nbsp;part)</pre>
<div class="block">Gets primary and backup nodes for partition. Note that primary node is always
first in the returned collection.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>part</code> - Partition to get affinity nodes for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Collection of primary and backup nodes for partition with primary node
always first.</dd>
<dt><span class="throwsLabel">Throws:</span></dt>
<dd><code><a href="../../../../../org/apache/ignite/IgniteException.html" title="class in org.apache.ignite">IgniteException</a></code> - If there are no alive nodes for this cache.</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/Affinity.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>
<div class="subNav">
<ul class="navList">
<li>Prev&nbsp;Class</li>
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityCentralizedFunction.html" title="annotation in org.apache.ignite.cache.affinity"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/cache/affinity/Affinity.html" target="_top">Frames</a></li>
<li><a href="Affinity.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>2020 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 Database and Caching Platform</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.9.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 9 2020 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>