<!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.0.0-rc3/javadoc/org/apache/ignite/cache/affinity/CacheAffinity.html" />
<!-- Generated by javadoc (version 1.7.0_21) on Tue Mar 24 10:27:31 MSK 2015 -->
<meta http-equiv="Content-Type" content="text/html" charset="UTF-8">
<title>CacheAffinity (Ignite 1.0.0-RC3)</title>
<meta name="date" content="2015-03-24">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<link rel='shortcut icon' href='http://gridgain.com/wp-content/uploads/2014/09/favicon.ico'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shCore.css'/>
<link type='text/css' rel='stylesheet' href='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/styles/shThemeDefault.css'/>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shCore.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shLegacy.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJava.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushPlain.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushJScript.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushBash.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushXml.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushScala.js'></script>
<script type='text/javascript' src='http://gridgain.com/wp-content/plugins/syntaxhighlighter/syntaxhighlighter3/scripts/shBrushGroovy.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"><!--
    if (location.href.indexOf('is-external=true') == -1) {
        parent.document.title="CacheAffinity (Ignite 1.0.0-RC3)";
    }
//-->
</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/CacheAffinity.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>Apache 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/CacheAffinityFunction.html" title="interface 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/CacheAffinity.html" target="_top">Frames</a></li>
<li><a href="CacheAffinity.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 CacheAffinity" class="title">Interface CacheAffinity<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="strong">CacheAffinity<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 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/CacheAffinityKeyMapper.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityKeyMapper</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/CacheAffinityFunction.html#partition(java.lang.Object)"><code>CacheAffinityFunction.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/CacheAffinity.html#affinityKey(K)">affinityKey</a></strong>(<a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.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 nodes of the given projection has 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/CacheAffinity.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 nodes of the given projection 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/CacheAffinity.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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.html#isPrimary(org.apache.ignite.cluster.ClusterNode, K)"><code>isPrimary(org.apache.ignite.cluster.ClusterNode, Object)</code></a> ||
      <a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html#isBackup(org.apache.ignite.cluster.ClusterNode, K)"><code>isBackup(org.apache.ignite.cluster.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><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="http://docs.oracle.com/javase/7/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/CacheAffinity.html" title="type parameter in CacheAffinity">K</a><span class='angle_bracket'>&gt;</span><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.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><span class='angle_bracket'>&lt;</span>? extends <a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html" title="type parameter in CacheAffinity">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 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/CacheAffinity.html#mapKeyToNode(K)">mapKeyToNode</a></strong>(<a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html" title="type parameter in CacheAffinity">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><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><strong><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html#mapKeyToPrimaryAndBackups(K)">mapKeyToPrimaryAndBackups</a></strong>(<a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html" title="type parameter in CacheAffinity">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><span class='angle_bracket'>&lt;</span><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><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><strong><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.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><span class='angle_bracket'>&lt;</span><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><span class='angle_bracket'>&gt;</span>&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/CacheAffinity.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><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><strong><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.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/CacheAffinity.html#partition(K)">partition</a></strong>(<a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.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/CacheAffinity.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 nodes of the given projection 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/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinity.html#isPrimary(org.apache.ignite.cluster.ClusterNode, K)"><code>isPrimary(org.apache.ignite.cluster.ClusterNode, Object)</code></a> ||
      <a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html#isBackup(org.apache.ignite.cluster.ClusterNode, K)"><code>isBackup(org.apache.ignite.cluster.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 nodes of the given projection has primary
 ownership.
 <p>
 Note that since <a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster"><code>ClusterNode</code></a> implements <a href="../../../../../org/apache/ignite/cluster/ClusterGroup.html" title="interface in org.apache.ignite.cluster"><code>ClusterGroup</code></a>,
 to find out primary partitions for a single node just pass
 a single node into this method.
 <p>
 This method may return an empty array if none of nodes in the projection
 have nearOnly disabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Grid node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition ids for which given projection has primary ownership.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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 nodes of the given projection has backup
 ownership. Note that you can find a back up at a certain level, e.g.
 <code>first</code> backup or <code>third</code> backup by specifying the
 <code>'levels</code> parameter. If no <code>'level'</code> is specified then
 all backup partitions are returned.
 <p>
 Note that since <a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster"><code>ClusterNode</code></a> implements <a href="../../../../../org/apache/ignite/cluster/ClusterGroup.html" title="interface in org.apache.ignite.cluster"><code>ClusterGroup</code></a>,
 to find out backup partitions for a single node, just pass that single
 node into this method.
 <p>
 This method may return an empty array if none of nodes in the projection
 have nearOnly disabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Grid node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition ids for which given projection has backup ownership.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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 nodes of the given projection has ownership
 (either primary or backup).
 <p>
 Note that since <a href="../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster"><code>ClusterNode</code></a> implements <a href="../../../../../org/apache/ignite/cluster/ClusterGroup.html" title="interface in org.apache.ignite.cluster"><code>ClusterGroup</code></a>,
 to find out all partitions for a single node, just pass that single
 node into this method.
 <p>
 This method may return an empty array if none of nodes in the projection
 have nearOnly disabled.</div>
<dl><dt><span class="strong">Parameters:</span></dt><dd><code>n</code> - Grid node.</dd>
<dt><span class="strong">Returns:</span></dt><dd>Partition ids for which given projection has ownership.</dd><dt><span class="strong">See Also:</span></dt><dd><a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><code>CacheAffinityKeyMapped</code></a> annotation
 or if a custom <a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinityKeyMapper.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityKeyMapper</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><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="http://docs.oracle.com/javase/7/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/CacheAffinity.html" title="type parameter in CacheAffinity">K</a><span class='angle_bracket'>&gt;</span><span class='angle_bracket'>&gt;</span>&nbsp;mapKeysToNodes(@Nullable
                                            <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><span class='angle_bracket'>&lt;</span>? extends <a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinity.html" title="type parameter in CacheAffinity">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 fully replicated caches <a href="../../../../../org/apache/ignite/cache/affinity/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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/CacheAffinity.html" title="type parameter in CacheAffinity">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/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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><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/CacheAffinity.html" title="type parameter in CacheAffinity">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.
 <p>
 If there are only cache nodes in the projection with
 <a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getDistributionMode()"><code>CacheConfiguration.getDistributionMode()</code></a> property set to <code>NEAR_ONLY</code>, then this
 method will return an empty 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, or an empty collection if this projection contains only nodes with
      <a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getDistributionMode()"><code>CacheConfiguration.getDistributionMode()</code></a> property set to <code>NEAR_ONLY</code>.</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/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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><span class='angle_bracket'>&lt;</span><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><span class='angle_bracket'>&gt;</span>&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><span class='angle_bracket'>&lt;</span><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><span class='angle_bracket'>&gt;</span>&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/CacheAffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>CacheAffinityFunction</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.CacheAffinityFunction)"><code>CacheConfiguration.setAffinity(CacheAffinityFunction)</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><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.
 <p>
 If there are only cache nodes in the projection with
 <a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getDistributionMode()"><code>CacheConfiguration.getDistributionMode()</code></a> property set to <code>NEAR_ONLY</code>, then this
 method will return an empty 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, or an empty collection if this projection contains only nodes with
      <a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getDistributionMode()"><code>CacheConfiguration.getDistributionMode()</code></a> property set to <code>NEAR_ONLY</code>.</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/CacheAffinity.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>Apache 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/CacheAffinityFunction.html" title="interface 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/CacheAffinity.html" target="_top">Frames</a></li>
<li><a href="CacheAffinity.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://incubator.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>Apache Ignite Fabric</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             ver. <strong>1.0.0-RC3</strong>                                                         </td>                                                     </tr>                                                     <tr style="padding: 0; margin: 0">                                                         <td>                                                             <b>Release Date</b>                                                         </td>                                                         <td>:&nbsp;&nbsp;                                                             March 24 2015                                                         </td>                                                     </tr>                                                 </tbody>                                             </table>                                         </td>                                     </tr>                                     </table></small></p>
<!--FOOTER--><script type='text/javascript'>SyntaxHighlighter.all();dp.SyntaxHighlighter.HighlightAll('code');</script>
</body>

</html>
