<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<META NAME="ROBOTS" CONTENT="NOINDEX">
<link rel="canonical" href="https://ignite.apache.org/releases/1.5.0-b1/javadoc/org/apache/ignite/cache/affinity/Affinity.html" />
<!-- Generated by javadoc (version 1.7.0_21) on Tue Dec 01 23:28:49 MSK 2015 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>Affinity (Ignite 1.5.0-b1)</title>
<meta name="date" content="2015-12-01">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">

<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"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="Affinity (Ignite 1.5.0-b1)";
    }
//-->
</script>
<noscript>
<div>JavaScript is disabled on your browser.</div>
</noscript>
<!-- ========= START OF TOP NAVBAR ======= -->
<div class="topNav"><a name="navbar_top">
<!--   -->
</a><a href="#skip-navbar_top" title="Skip navigation links"></a><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 class="aboutLanguage"><em>Ignite - In-Memory Data Fabric</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityCentralizedFunction.html" title="annotation in org.apache.ignite.cache.affinity"><span class="strong">Next 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 Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All 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&lt;K&gt;</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<hr>
<br>
<pre>public interface <span class="strong">Affinity&lt;K&gt;</span></pre>
<div class="block">Provides affinity information to detect which node is primary and which nodes are
 backups for a partitioned cache. You can get an instance of this interface by calling
 <code>Cache.affinity()</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="overviewSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span>Methods</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Method and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#affinityKey(K)">affinityKey</a></strong>(<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 class="rowColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#allPartitions(org.apache.ignite.cluster.ClusterNode)">allPartitions</a></strong>(<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 class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#backupPartitions(org.apache.ignite.cluster.ClusterNode)">backupPartitions</a></strong>(<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 class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isBackup(org.apache.ignite.cluster.ClusterNode, K)">isBackup</a></strong>(<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 class="altColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isPrimary(org.apache.ignite.cluster.ClusterNode, K)">isPrimary</a></strong>(<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 class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#isPrimaryOrBackup(org.apache.ignite.cluster.ClusterNode, K)">isPrimaryOrBackup</a></strong>(<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 class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&gt;&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapKeysToNodes(java.util.Collection)">mapKeysToNodes</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&gt;&nbsp;keys)</code>
<div class="block">This method provides ability to detect which keys are mapped to which nodes.</div>
</td>
</tr>
<tr class="rowColor">
<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><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapKeyToNode(K)">mapKeyToNode</a></strong>(<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 class="altColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapKeyToPrimaryAndBackups(K)">mapKeyToPrimaryAndBackups</a></strong>(<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 class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/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>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapPartitionsToNodes(java.util.Collection)">mapPartitionsToNodes</a></strong>(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;parts)</code>
<div class="block">Gets primary nodes for the given partitions.</div>
</td>
</tr>
<tr 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><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapPartitionToNode(int)">mapPartitionToNode</a></strong>(int&nbsp;part)</code>
<div class="block">Gets primary node for the given partition.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colFirst"><code><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&gt;</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#mapPartitionToPrimaryAndBackups(int)">mapPartitionToPrimaryAndBackups</a></strong>(int&nbsp;part)</code>
<div class="block">Gets primary and backup nodes for partition.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#partition(K)">partition</a></strong>(<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 class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#partitions()">partitions</a></strong>()</code>
<div class="block">Gets number of partitions in cache according to configured affinity function.</div>
</td>
</tr>
<tr class="altColor">
<td class="colFirst"><code>int[]</code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html#primaryPartitions(org.apache.ignite.cluster.ClusterNode)">primaryPartitions</a></strong>(<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="strong">Returns:</span></dt><dd>Number of cache partitions.</dd><dt><span class="strong">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="strong">Parameters:</span></dt><dd><code>key</code> - Key to get partition id for.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition id.</dd><dt><span class="strong">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="strong">Parameters:</span></dt><dd><code>n</code> - Node to check.</dd><dd><code>key</code> - Key to check.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>True</code> if local node is the primary node for given key.</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="strong">Parameters:</span></dt><dd><code>n</code> - Node to check.</dd><dd><code>key</code> - Key to check.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>True</code> if local node is one of the backup nodes for given key.</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="strong">Parameters:</span></dt><dd><code>n</code> - Node to check.</dd><dd><code>key</code> - Key to check.</dd>
<dt><span class="strong">Returns:</span></dt><dd><code>True</code> if local node is primary or backup for given key.</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="strong">Parameters:</span></dt><dd><code>n</code> - Cluster node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition ids for which given cluster node has primary ownership.</dd><dt><span class="strong">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="strong">Parameters:</span></dt><dd><code>n</code> - Cluster node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition ids for which given cluster node has backup ownership.</dd><dt><span class="strong">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="strong">Parameters:</span></dt><dd><code>n</code> - Cluster node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition ids for which given cluster node has any ownership, primary or backup.</dd><dt><span class="strong">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="http://docs.oracle.com/javase/7/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="strong">Parameters:</span></dt><dd><code>key</code> - Key to map.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Key to be used for node-to-affinity mapping (may be the same
      key as passed in).</dd></dl>
</li>
</ul>
<a name="mapKeysToNodes(java.util.Collection)">
<!--   -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>mapKeysToNodes</h4>
<pre><a href="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>,<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&gt;&gt;&nbsp;mapKeysToNodes(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;? extends <a href="../../../../../org/apache/ignite/cache/affinity/Affinity.html" title="type parameter in Affinity">K</a>&gt;&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 fully replicated caches <a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a> is
      used to determine which keys are mapped to which nodes.
 </li>
 <li>For partitioned caches, the returned map represents node-to-key affinity.</li>
 </ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>keys</code> - Keys to map to nodes.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Map of nodes to keys or empty map 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
<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 fully replicated caches first node ID returned by <a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>
      is returned.
 </li>
 <li>For partitioned caches, primary node for the given key is returned.</li>
 </ul></div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>key</code> - Keys to map to a node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Primary node for the key or <code>null</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="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&gt;&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="strong">Parameters:</span></dt><dd><code>key</code> - Key to get affinity nodes for.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Collection of primary and backup nodes for the key with primary node
      always first.</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="strong">Parameters:</span></dt><dd><code>part</code> - Partition id.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Primary node for the given partition.</dd><dt><span class="strong">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="http://docs.oracle.com/javase/7/docs/api/java/util/Map.html?is-external=true" title="class or interface in java.util">Map</a>&lt;<a href="http://docs.oracle.com/javase/7/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>&gt;&nbsp;mapPartitionsToNodes(<a href="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="http://docs.oracle.com/javase/7/docs/api/java/lang/Integer.html?is-external=true" title="class or interface in java.lang">Integer</a>&gt;&nbsp;parts)</pre>
<div class="block">Gets primary nodes for the given partitions.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>parts</code> - Partition ids.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Mapping of given partitions to their primary nodes.</dd><dt><span class="strong">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="http://docs.oracle.com/javase/7/docs/api/java/util/Collection.html?is-external=true" title="class or interface in java.util">Collection</a>&lt;<a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&gt;&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="strong">Parameters:</span></dt><dd><code>part</code> - Partition to get affinity nodes for.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Collection of primary and backup nodes for partition with primary node
      always first.</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><a href="#skip-navbar_bottom" title="Skip navigation links"></a><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 class="aboutLanguage"><em>Ignite - In-Memory Data Fabric</em></div>
</div>
<div class="subNav">
<ul class="navList">
<li>Prev Class</li>
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityCentralizedFunction.html" title="annotation in org.apache.ignite.cache.affinity"><span class="strong">Next 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 Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All 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://apache.org/projects/ignite.html"><nobr>2015 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>                                             <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0],p=/^http:/.test(d.location)?'http':'https';if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src=p+'://platform.twitter.com/widgets.js';fjs.parentNode.insertBefore(js,fjs);}}(document, 'script', 'twitter-wjs');</script>                                         </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>1.5.0-b1</strong>                                                         </td>                                                     </tr>                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Release Date</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             December 1 2015                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                     </tr>                                     </table></small></p>
</body>
</html>
