blob: 80f53d7e119f5e91e507641797ade1a2ef772243 [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>
<!-- Generated by javadoc (1.8.0_261) on Mon Dec 20 14:15:52 MSK 2021 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>RendezvousAffinityFunction (Ignite 2.11.1)</title>
<meta name="date" content="2021-12-20">
<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'/>
</head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="RendezvousAffinityFunction (Ignite 2.11.1)";
}
}
catch(err) {
}
//-->
var methods = {"i0":10,"i1":10,"i2":9,"i3":9,"i4":10,"i5":10,"i6":10,"i7":10,"i8":10,"i9":10,"i10":10,"i11":10,"i12":10,"i13":10,"i14":42,"i15":10,"i16":10,"i17":10};
var tabs = {65535:["t0","All Methods"],1:["t1","Static Methods"],2:["t2","Instance Methods"],8:["t4","Concrete Methods"],32:["t6","Deprecated 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/RendezvousAffinityFunction.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><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/ClusterNodeAttributeColocatedBackupFilter.html" title="class in org.apache.ignite.cache.affinity.rendezvous"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" target="_top">Frames</a></li>
<li><a href="RendezvousAffinityFunction.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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.rendezvous</div>
<h2 title="Class RendezvousAffinityFunction" class="title">Class RendezvousAffinityFunction</h2>
</div>
<div class="contentContainer">
<ul class="inheritance">
<li><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">java.lang.Object</a></li>
<li>
<ul class="inheritance">
<li>org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction</li>
</ul>
</li>
</ul>
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Implemented Interfaces:</dt>
<dd><a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a>, <a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a></dd>
</dl>
<hr>
<br>
<pre>public class <span class="typeNameLabel">RendezvousAffinityFunction</span>
extends <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>
implements <a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></pre>
<div class="block">Affinity function for partitioned cache based on Highest Random Weight algorithm.
This function supports the following configuration:
<ul>
<li>
<code>partitions</code> - Number of partitions to spread across nodes.
</li>
<li>
<code>excludeNeighbors</code> - If set to <code>true</code>, will exclude same-host-neighbors
from being backups of each other. This flag can be ignored in cases when topology has no enough nodes
for assign backups.
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.
</li>
<li>
<code>backupFilter</code> - Optional filter for back up nodes. If provided, then only
nodes that pass this filter will be selected as backup nodes. If not provided, then
primary and backup nodes will be selected out of all nodes available for this cache.
</li>
</ul>
<p>
Cache affinity can be configured for individual caches via <a href="../../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinity--"><code>CacheConfiguration.getAffinity()</code></a> method.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../serialized-form.html#org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction">Serialized Form</a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- =========== FIELD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.summary">
<!-- -->
</a>
<h3>Field Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Field Summary table, listing fields, and an explanation">
<caption><span>Fields</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colFirst" scope="col">Modifier and Type</th>
<th class="colLast" scope="col">Field and Description</th>
</tr>
<tr class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#DFLT_PARTITION_COUNT">DFLT_PARTITION_COUNT</a></span></code>
<div class="block">Default number of partitions.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ======== CONSTRUCTOR SUMMARY ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.summary">
<!-- -->
</a>
<h3>Constructor Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Constructor Summary table, listing constructors, and an explanation">
<caption><span>Constructors</span><span class="tabEnd">&nbsp;</span></caption>
<tr>
<th class="colOne" scope="col">Constructor and Description</th>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#RendezvousAffinityFunction--">RendezvousAffinityFunction</a></span>()</code>
<div class="block">Empty constructor with all defaults.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#RendezvousAffinityFunction-boolean-">RendezvousAffinityFunction</a></span>(boolean&nbsp;exclNeighbors)</code>
<div class="block">Initializes affinity with flag to exclude same-host-neighbors from being backups of each other
and specified number of backups.</div>
</td>
</tr>
<tr class="altColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#RendezvousAffinityFunction-boolean-int-">RendezvousAffinityFunction</a></span>(boolean&nbsp;exclNeighbors,
int&nbsp;parts)</code>
<div class="block">Initializes affinity with flag to exclude same-host-neighbors from being backups of each other,
and specified number of backups and partitions.</div>
</td>
</tr>
<tr class="rowColor">
<td class="colOne"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#RendezvousAffinityFunction-int-org.apache.ignite.lang.IgniteBiPredicate-">RendezvousAffinityFunction</a></span>(int&nbsp;parts,
@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;backupFilter)</code>
<div class="block">Initializes optional counts for replicas and backups.</div>
</td>
</tr>
</table>
</li>
</ul>
<!-- ========== 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="t1" class="tableTab"><span><a href="javascript:show(1);">Static Methods</a></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="t4" class="tableTab"><span><a href="javascript:show(8);">Concrete Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t6" class="tableTab"><span><a href="javascript:show(32);">Deprecated 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/util/List.html?is-external=true" title="class or interface in java.util">List</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/rendezvous/RendezvousAffinityFunction.html#assignPartition-int-java.util.List-int-java.util.Map-">assignPartition</a></span>(int&nbsp;part,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</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;nodes,
int&nbsp;backups,
@Nullable <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/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</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/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span><span class='angle_bracket'>&gt;</span>&nbsp;neighborhoodCache)</code>
<div class="block">Returns collection of nodes (primary first) for specified partition.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</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><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#assignPartitions-org.apache.ignite.cache.affinity.AffinityFunctionContext-">assignPartitions</a></span>(<a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunctionContext.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunctionContext</a>&nbsp;affCtx)</code>
<div class="block">Gets affinity nodes for a partition.</div>
</td>
</tr>
<tr id="i2" class="altColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#calculateMask-int-">calculateMask</a></span>(int&nbsp;parts)</code>
<div class="block">Helper method to calculates mask.</div>
</td>
</tr>
<tr id="i3" class="rowColor">
<td class="colFirst"><code>static int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#calculatePartition-java.lang.Object-int-int-">calculatePartition</a></span>(<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;key,
int&nbsp;mask,
int&nbsp;parts)</code>
<div class="block">Helper method to calculate partition.</div>
</td>
</tr>
<tr id="i4" class="altColor">
<td class="colFirst"><code>@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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/List.html?is-external=true" title="class or interface in java.util">List</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><span class='angle_bracket'>&gt;</span></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#getAffinityBackupFilter--">getAffinityBackupFilter</a></span>()</code>
<div class="block">Gets optional backup filter.</div>
</td>
</tr>
<tr id="i5" class="rowColor">
<td class="colFirst"><code>@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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="../../../../../../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/rendezvous/RendezvousAffinityFunction.html#getBackupFilter--">getBackupFilter</a></span>()</code>
<div class="block">Gets optional backup filter.</div>
</td>
</tr>
<tr id="i6" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#getPartitions--">getPartitions</a></span>()</code>
<div class="block">Gets total number of key partitions.</div>
</td>
</tr>
<tr id="i7" class="rowColor">
<td class="colFirst"><code>boolean</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#isExcludeNeighbors--">isExcludeNeighbors</a></span>()</code>
<div class="block">Checks flag to exclude same-host-neighbors from being backups of each other (default is <code>false</code>).</div>
</td>
</tr>
<tr id="i8" class="altColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#partition-java.lang.Object-">partition</a></span>(<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;key)</code>
<div class="block">Gets partition number for a given key starting from <code>0</code>.</div>
</td>
</tr>
<tr id="i9" class="rowColor">
<td class="colFirst"><code>int</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#partitions--">partitions</a></span>()</code>
<div class="block">Gets total number of partitions available.</div>
</td>
</tr>
<tr id="i10" class="altColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#removeNode-java.util.UUID-">removeNode</a></span>(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;nodeId)</code>
<div class="block">Removes node from affinity.</div>
</td>
</tr>
<tr id="i11" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#reset--">reset</a></span>()</code>
<div class="block">Resets cache affinity to its initial state.</div>
</td>
</tr>
<tr id="i12" 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/rendezvous/RendezvousAffinityFunction.html#resolveNodeHash-org.apache.ignite.cluster.ClusterNode-">resolveNodeHash</a></span>(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node)</code>
<div class="block">Resolves node hash.</div>
</td>
</tr>
<tr id="i13" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#setAffinityBackupFilter-org.apache.ignite.lang.IgniteBiPredicate-">setAffinityBackupFilter</a></span>(@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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/List.html?is-external=true" title="class or interface in java.util">List</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><span class='angle_bracket'>&gt;</span>&nbsp;affinityBackupFilter)</code>
<div class="block">Sets optional backup filter.</div>
</td>
</tr>
<tr id="i14" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#setBackupFilter-org.apache.ignite.lang.IgniteBiPredicate-">setBackupFilter</a></span>(@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;backupFilter)</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <code>affinityBackupFilter</code> instead.</span></div>
</div>
</td>
</tr>
<tr id="i15" class="rowColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#setExcludeNeighbors-boolean-">setExcludeNeighbors</a></span>(boolean&nbsp;exclNeighbors)</code>
<div class="block">Sets flag to exclude same-host-neighbors from being backups of each other (default is <code>false</code>).</div>
</td>
</tr>
<tr id="i16" class="altColor">
<td class="colFirst"><code><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#setPartitions-int-">setPartitions</a></span>(int&nbsp;parts)</code>
<div class="block">Sets total number of partitions.If the number of partitions is a power of two,
the PowerOfTwo hashing method will be used.</div>
</td>
</tr>
<tr id="i17" class="rowColor">
<td class="colFirst"><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a></code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html#toString--">toString</a></span>()</code></td>
</tr>
</table>
<ul class="blockList">
<li class="blockList"><a name="methods.inherited.from.class.java.lang.Object">
<!-- -->
</a>
<h3>Methods inherited from class&nbsp;java.lang.<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></h3>
<code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#clone--" title="class or interface in java.lang">clone</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#equals-java.lang.Object-" title="class or interface in java.lang">equals</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#finalize--" title="class or interface in java.lang">finalize</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#getClass--" title="class or interface in java.lang">getClass</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#hashCode--" title="class or interface in java.lang">hashCode</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notify--" title="class or interface in java.lang">notify</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#notifyAll--" title="class or interface in java.lang">notifyAll</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait--" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-" title="class or interface in java.lang">wait</a>, <a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#wait-long-int-" title="class or interface in java.lang">wait</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</div>
<div class="details">
<ul class="blockList">
<li class="blockList">
<!-- ============ FIELD DETAIL =========== -->
<ul class="blockList">
<li class="blockList"><a name="field.detail">
<!-- -->
</a>
<h3>Field Detail</h3>
<a name="DFLT_PARTITION_COUNT">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>DFLT_PARTITION_COUNT</h4>
<pre>public static final&nbsp;int DFLT_PARTITION_COUNT</pre>
<div class="block">Default number of partitions.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../../constant-values.html#org.apache.ignite.cache.affinity.rendezvous.RendezvousAffinityFunction.DFLT_PARTITION_COUNT">Constant Field Values</a></dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ========= CONSTRUCTOR DETAIL ======== -->
<ul class="blockList">
<li class="blockList"><a name="constructor.detail">
<!-- -->
</a>
<h3>Constructor Detail</h3>
<a name="RendezvousAffinityFunction--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RendezvousAffinityFunction</h4>
<pre>public&nbsp;RendezvousAffinityFunction()</pre>
<div class="block">Empty constructor with all defaults.</div>
</li>
</ul>
<a name="RendezvousAffinityFunction-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RendezvousAffinityFunction</h4>
<pre>public&nbsp;RendezvousAffinityFunction(boolean&nbsp;exclNeighbors)</pre>
<div class="block">Initializes affinity with flag to exclude same-host-neighbors from being backups of each other
and specified number of backups.
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exclNeighbors</code> - <code>True</code> if nodes residing on the same host may not act as backups
of each other.</dd>
</dl>
</li>
</ul>
<a name="RendezvousAffinityFunction-boolean-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>RendezvousAffinityFunction</h4>
<pre>public&nbsp;RendezvousAffinityFunction(boolean&nbsp;exclNeighbors,
int&nbsp;parts)</pre>
<div class="block">Initializes affinity with flag to exclude same-host-neighbors from being backups of each other,
and specified number of backups and partitions.
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exclNeighbors</code> - <code>True</code> if nodes residing on the same host may not act as backups
of each other.</dd>
<dd><code>parts</code> - Total number of partitions.</dd>
</dl>
</li>
</ul>
<a name="RendezvousAffinityFunction-int-org.apache.ignite.lang.IgniteBiPredicate-">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>RendezvousAffinityFunction</h4>
<pre>public&nbsp;RendezvousAffinityFunction(int&nbsp;parts,
@Nullable
@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;backupFilter)</pre>
<div class="block">Initializes optional counts for replicas and backups.
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parts</code> - Total number of partitions.</dd>
<dd><code>backupFilter</code> - Optional back up filter for nodes. If provided, backups will be selected
from all nodes that pass this filter. First argument for this filter is primary node, and second
argument is node being tested.
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</dd>
</dl>
</li>
</ul>
</li>
</ul>
<!-- ============ METHOD DETAIL ========== -->
<ul class="blockList">
<li class="blockList"><a name="method.detail">
<!-- -->
</a>
<h3>Method Detail</h3>
<a name="calculateMask-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>calculateMask</h4>
<pre>public static&nbsp;int&nbsp;calculateMask(int&nbsp;parts)</pre>
<div class="block">Helper method to calculates mask.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parts</code> - Number of partitions.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Mask to use in calculation when partitions count is power of 2.</dd>
</dl>
</li>
</ul>
<a name="calculatePartition-java.lang.Object-int-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>calculatePartition</h4>
<pre>public static&nbsp;int&nbsp;calculatePartition(<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;key,
int&nbsp;mask,
int&nbsp;parts)</pre>
<div class="block">Helper method to calculate partition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - – Key to get partition for.</dd>
<dd><code>mask</code> - Mask to use in calculation when partitions count is power of 2.</dd>
<dd><code>parts</code> - Number of partitions.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partition number for a given key.</dd>
</dl>
</li>
</ul>
<a name="getPartitions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getPartitions</h4>
<pre>public&nbsp;int&nbsp;getPartitions()</pre>
<div class="block">Gets total number of key partitions. To ensure that all partitions are
equally distributed across all nodes, please make sure that this
number is significantly larger than a number of nodes. Also, partition
size should be relatively small. Try to avoid having partitions with more
than quarter million keys.
<p>
For fully replicated caches this method works the same way as a partitioned
cache.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total partition count.</dd>
</dl>
</li>
</ul>
<a name="setPartitions-int-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setPartitions</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a>&nbsp;setPartitions(int&nbsp;parts)</pre>
<div class="block">Sets total number of partitions.If the number of partitions is a power of two,
the PowerOfTwo hashing method will be used. Otherwise the Standard hashing
method will be applied.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>parts</code> - Total number of partitions.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getBackupFilter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getBackupFilter</h4>
<pre>@Nullable
public&nbsp;@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;getBackupFilter()</pre>
<div class="block">Gets optional backup filter. If not <code>null</code>, backups will be selected
from all nodes that pass this filter. First node passed to this filter is primary node,
and second node is a node being tested.
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional backup filter.</dd>
</dl>
</li>
</ul>
<a name="setBackupFilter-org.apache.ignite.lang.IgniteBiPredicate-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setBackupFilter</h4>
<pre><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public&nbsp;<a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a>&nbsp;setBackupFilter(@Nullable
@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span>&nbsp;backupFilter)</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;<span class="deprecationComment">Use <code>affinityBackupFilter</code> instead.</span></div>
<div class="block">Sets optional backup filter. If provided, then backups will be selected from all
nodes that pass this filter. First node being passed to this filter is primary node,
and second node is a node being tested.
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>backupFilter</code> - Optional backup filter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="getAffinityBackupFilter--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>getAffinityBackupFilter</h4>
<pre>@Nullable
public&nbsp;@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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/List.html?is-external=true" title="class or interface in java.util">List</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><span class='angle_bracket'>&gt;</span>&nbsp;getAffinityBackupFilter()</pre>
<div class="block">Gets optional backup filter. If not <code>null</code>, backups will be selected
from all nodes that pass this filter. First node passed to this filter is a node being tested,
and the second parameter is a list of nodes that are already assigned for a given partition (primary node is the first in the list).
<p>
Note that <code>affinityBackupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Optional backup filter.</dd>
</dl>
</li>
</ul>
<a name="setAffinityBackupFilter-org.apache.ignite.lang.IgniteBiPredicate-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setAffinityBackupFilter</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a>&nbsp;setAffinityBackupFilter(@Nullable
@Nullable <a href="../../../../../../org/apache/ignite/lang/IgniteBiPredicate.html" title="interface in org.apache.ignite.lang">IgniteBiPredicate</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/List.html?is-external=true" title="class or interface in java.util">List</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><span class='angle_bracket'>&gt;</span>&nbsp;affinityBackupFilter)</pre>
<div class="block">Sets optional backup filter. If provided, then backups will be selected from all
nodes that pass this filter. First node being passed to this filter is a node being tested,
and the second parameter is a list of nodes that are already assigned for a given partition (primary node is the first in the list).
<p>
Note that <code>affinityBackupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.
<p>
For an example filter, see <a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/ClusterNodeAttributeAffinityBackupFilter.html" title="class in org.apache.ignite.cache.affinity.rendezvous"><code>ClusterNodeAttributeAffinityBackupFilter</code></a>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>affinityBackupFilter</code> - Optional backup filter.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="isExcludeNeighbors--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>isExcludeNeighbors</h4>
<pre>public&nbsp;boolean&nbsp;isExcludeNeighbors()</pre>
<div class="block">Checks flag to exclude same-host-neighbors from being backups of each other (default is <code>false</code>).
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>True</code> if nodes residing on the same host may not act as backups of each other.</dd>
</dl>
</li>
</ul>
<a name="setExcludeNeighbors-boolean-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>setExcludeNeighbors</h4>
<pre>public&nbsp;<a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" title="class in org.apache.ignite.cache.affinity.rendezvous">RendezvousAffinityFunction</a>&nbsp;setExcludeNeighbors(boolean&nbsp;exclNeighbors)</pre>
<div class="block">Sets flag to exclude same-host-neighbors from being backups of each other (default is <code>false</code>).
<p>
Note that <code>backupFilter</code> is ignored if <code>excludeNeighbors</code> is set to <code>true</code>.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>exclNeighbors</code> - <code>True</code> if nodes residing on the same host may not act as backups of each other.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd><code>this</code> for chaining.</dd>
</dl>
</li>
</ul>
<a name="resolveNodeHash-org.apache.ignite.cluster.ClusterNode-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>resolveNodeHash</h4>
<pre>public&nbsp;<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;resolveNodeHash(<a href="../../../../../../org/apache/ignite/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a>&nbsp;node)</pre>
<div class="block">Resolves node hash.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>node</code> - Cluster node;</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Node hash.</dd>
</dl>
</li>
</ul>
<a name="assignPartition-int-java.util.List-int-java.util.Map-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignPartition</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</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;assignPartition(int&nbsp;part,
<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</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;nodes,
int&nbsp;backups,
@Nullable
@Nullable <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/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</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/cluster/ClusterNode.html" title="interface in org.apache.ignite.cluster">ClusterNode</a><span class='angle_bracket'>&gt;</span><span class='angle_bracket'>&gt;</span>&nbsp;neighborhoodCache)</pre>
<div class="block">Returns collection of nodes (primary first) for specified partition.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>part</code> - Partition.</dd>
<dd><code>nodes</code> - Nodes.</dd>
<dd><code>backups</code> - Number of backups.</dd>
<dd><code>neighborhoodCache</code> - Neighborhood.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Assignment.</dd>
</dl>
</li>
</ul>
<a name="reset--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>reset</h4>
<pre>public&nbsp;void&nbsp;reset()</pre>
<div class="block">Resets cache affinity to its initial state. This method will be called by
the system any time the affinity has been sent to remote node where
it has to be reinitialized. If your implementation of affinity function
has no initialization logic, leave this method empty.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#reset--">reset</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a></code></dd>
</dl>
</li>
</ul>
<a name="partitions--">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>partitions</h4>
<pre>public&nbsp;int&nbsp;partitions()</pre>
<div class="block">Gets total number of partitions available. All caches should always provide
correct partition count which should be the same on all participating nodes.
Note that partitions should always be numbered from <code>0</code> inclusively to
<code>N</code> exclusively without any gaps.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#partitions--">partitions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a></code></dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Total partition count.</dd>
</dl>
</li>
</ul>
<a name="partition-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>partition</h4>
<pre>public&nbsp;int&nbsp;partition(<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;key)</pre>
<div class="block">Gets partition number for a given key starting from <code>0</code>. Partitioned caches
should make sure that keys are about evenly distributed across all partitions
from <code>0</code> to <a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#partitions--"><code>partition count</code></a> for best performance.
<p>
Note that for fully replicated caches it is possible to segment key sets among different
grid node groups. In that case each node group should return a unique partition
number. However, unlike partitioned cache, mappings of keys to nodes in
replicated caches are constant and a node cannot migrate from one partition
to another.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#partition-java.lang.Object-">partition</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key to get partition for.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Partition number for a given key.</dd>
</dl>
</li>
</ul>
<a name="assignPartitions-org.apache.ignite.cache.affinity.AffinityFunctionContext-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>assignPartitions</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</a><span class='angle_bracket'>&lt;</span><a href="https://docs.oracle.com/javase/8/docs/api/java/util/List.html?is-external=true" title="class or interface in java.util">List</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><span class='angle_bracket'>&gt;</span>&nbsp;assignPartitions(<a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunctionContext.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunctionContext</a>&nbsp;affCtx)</pre>
<div class="block">Gets affinity nodes for a partition. In case of replicated cache, all returned
nodes are updated in the same manner. In case of partitioned cache, the returned
list should contain only the primary and back up nodes with primary node being
always first.
<p>
Note that partitioned affinity must obey the following contract: given that node
<code>N</code> is primary for some key <code>K</code>, if any other node(s) leave
grid and no node joins grid, node <code>N</code> will remain primary for key <code>K</code>.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#assignPartitions-org.apache.ignite.cache.affinity.AffinityFunctionContext-">assignPartitions</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>affCtx</code> - Affinity function context. Will provide all required information to calculate
new partition assignments.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Unmodifiable list indexed by partition number. Each element of array is a collection in which
first node is a primary node and other nodes are backup nodes.</dd>
</dl>
</li>
</ul>
<a name="removeNode-java.util.UUID-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>removeNode</h4>
<pre>public&nbsp;void&nbsp;removeNode(<a href="https://docs.oracle.com/javase/8/docs/api/java/util/UUID.html?is-external=true" title="class or interface in java.util">UUID</a>&nbsp;nodeId)</pre>
<div class="block">Removes node from affinity. This method is called when it is safe to remove left node from
affinity mapping.</div>
<dl>
<dt><span class="overrideSpecifyLabel">Specified by:</span></dt>
<dd><code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html#removeNode-java.util.UUID-">removeNode</a></code>&nbsp;in interface&nbsp;<code><a href="../../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity">AffinityFunction</a></code></dd>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>nodeId</code> - ID of node to remove.</dd>
</dl>
</li>
</ul>
<a name="toString--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>toString</h4>
<pre>public&nbsp;<a href="https://docs.oracle.com/javase/8/docs/api/java/lang/String.html?is-external=true" title="class or interface in java.lang">String</a>&nbsp;toString()</pre>
<dl>
<dt><span class="overrideSpecifyLabel">Overrides:</span></dt>
<dd><code><a href="https://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true#toString--" title="class or interface in java.lang">toString</a></code>&nbsp;in class&nbsp;<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></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/RendezvousAffinityFunction.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><a href="../../../../../../org/apache/ignite/cache/affinity/rendezvous/ClusterNodeAttributeColocatedBackupFilter.html" title="class in org.apache.ignite.cache.affinity.rendezvous"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li>Next&nbsp;Class</li>
</ul>
<ul class="navList">
<li><a href="../../../../../../index.html?org/apache/ignite/cache/affinity/rendezvous/RendezvousAffinityFunction.html" target="_top">Frames</a></li>
<li><a href="RendezvousAffinityFunction.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><a href="#field.summary">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.summary">Constr</a>&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li><a href="#field.detail">Field</a>&nbsp;|&nbsp;</li>
<li><a href="#constructor.detail">Constr</a>&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>2021 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.11.1</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; December 20 2021 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>