blob: 2a7aaf3a2ba8fa6334daf26d9ed02af7099dbc68 [file] [log] [blame]
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<!-- NewPage -->
<html lang="en">
<head>
<link rel="canonical" href="https://ignite.apache.org/releases/2.6.0/javadoc/org/apache/ignite/cache/affinity/AffinityKeyMapper.html" />
<META NAME="ROBOTS" CONTENT="NOINDEX">
<!-- Generated by javadoc (1.8.0_77) on Tue Jul 10 11:04:42 UTC 2018 -->
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>AffinityKeyMapper (Ignite 2.6.0)</title>
<meta name="date" content="2018-07-10">
<link rel="stylesheet" type="text/css" href="../../../../../javadoc.css" title="Style">
<script type="text/javascript" src="../../../../../script.js"></script>
<script>
(function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){
(i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o),
m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m)
})(window,document,'script','https://www.google-analytics.com/analytics.js','ga');
ga('create', 'UA-61232409-1', 'auto');
ga('send', 'pageview');
</script></head>
<body>
<script type="text/javascript"><!--
try {
if (location.href.indexOf('is-external=true') == -1) {
parent.document.title="AffinityKeyMapper (Ignite 2.6.0)";
}
}
catch(err) {
}
//-->
var methods = {"i0":38,"i1":38};
var tabs = {65535:["t0","All Methods"],2:["t2","Instance Methods"],4:["t3","Abstract 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/AffinityKeyMapper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Ignite - In-Memory Data Fabric</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityUuid.html" title="class in org.apache.ignite.cache.affinity"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/cache/affinity/AffinityKeyMapper.html" target="_top">Frames</a></li>
<li><a href="AffinityKeyMapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_top">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_top");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.top">
<!-- -->
</a></div>
<!-- ========= END OF TOP NAVBAR ========= -->
<!-- ======== START OF CLASS DATA ======== -->
<div class="header">
<div class="subTitle">org.apache.ignite.cache.affinity</div>
<h2 title="Interface AffinityKeyMapper" class="title">Interface AffinityKeyMapper</h2>
</div>
<div class="contentContainer">
<div class="description">
<ul class="blockList">
<li class="blockList">
<dl>
<dt>All Superinterfaces:</dt>
<dd><a href="http://docs.oracle.com/javase/8/docs/api/java/io/Serializable.html?is-external=true" title="class or interface in java.io">Serializable</a></dd>
</dl>
<dl>
<dt>All Known Implementing Classes:</dt>
<dd>org.apache.ignite.internal.processors.cache.GridCacheDefaultAffinityKeyMapper, <a href="../../../../../org/apache/ignite/igfs/IgfsGroupDataBlocksKeyMapper.html" title="class in org.apache.ignite.igfs">IgfsGroupDataBlocksKeyMapper</a></dd>
</dl>
<hr>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;
<div class="block"><span class="deprecationComment">Use <a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><code>AffinityKeyMapped</code></a> or <a href="../../../../../org/apache/ignite/cache/CacheKeyConfiguration.html#setAffinityKeyFieldName-java.lang.String-"><code>CacheKeyConfiguration.setAffinityKeyFieldName(String)</code></a> instead.</span></div>
</div>
<br>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Deprecated.html?is-external=true" title="class or interface in java.lang">@Deprecated</a>
public interface <span class="typeNameLabel">AffinityKeyMapper</span>
extends <a href="http://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 mapper which maps cache key to an affinity key. Affinity key is a key which will be
used to determine a node on which this key will be cached. Every cache key will first be passed
through <a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapper.html#affinityKey-java.lang.Object-"><code>affinityKey(Object)</code></a> method, and the returned value of this method
will be given to <a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a> implementation to find out key-to-node affinity.
<p>
The default implementation, which will be used if no explicit affinity mapper is specified
in cache configuration, will first look for any field or method annotated with
<a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><code>@AffinityKeyMapped</code></a> annotation. If such field or method
is not found, then the cache key itself will be returned from <a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapper.html#affinityKey-java.lang.Object-"><code>affinityKey(Object)</code></a>
method (this means that all objects with the same cache key will always be routed to the same node).
If such field or method is found, then the value of this field or method will be returned from
<a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapper.html#affinityKey-java.lang.Object-"><code>affinityKey(Object)</code></a> method. This allows to specify alternate affinity key, other
than the cache key itself, whenever needed.
<p>
A custom (other than default) affinity mapper can be provided
via <a href="../../../../../org/apache/ignite/configuration/CacheConfiguration.html#getAffinityMapper--"><code>CacheConfiguration.getAffinityMapper()</code></a> configuration property.
<p>
For more information on affinity mapping and examples refer to <a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a> and
<a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><code>@AffinityKeyMapped</code></a> documentation.</div>
<dl>
<dt><span class="seeLabel">See Also:</span></dt>
<dd><a href="../../../../../org/apache/ignite/cache/affinity/AffinityFunction.html" title="interface in org.apache.ignite.cache.affinity"><code>AffinityFunction</code></a>,
<a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><code>AffinityKeyMapped</code></a></dd>
</dl>
</li>
</ul>
</div>
<div class="summary">
<ul class="blockList">
<li class="blockList">
<!-- ========== METHOD SUMMARY =========== -->
<ul class="blockList">
<li class="blockList"><a name="method.summary">
<!-- -->
</a>
<h3>Method Summary</h3>
<table class="memberSummary" border="0" cellpadding="3" cellspacing="0" summary="Method Summary table, listing methods, and an explanation">
<caption><span id="t0" class="activeTableTab"><span>All Methods</span><span class="tabEnd">&nbsp;</span></span><span id="t2" class="tableTab"><span><a href="javascript:show(2);">Instance Methods</a></span><span class="tabEnd">&nbsp;</span></span><span id="t3" class="tableTab"><span><a href="javascript:show(4);">Abstract Methods</a></span><span class="tabEnd">&nbsp;</span></span><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="http://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/AffinityKeyMapper.html#affinityKey-java.lang.Object-">affinityKey</a></span>(<a href="http://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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Maps passed in key to an alternate key which will be used for node affinity.</div>
</td>
</tr>
<tr id="i1" class="rowColor">
<td class="colFirst"><code>void</code></td>
<td class="colLast"><code><span class="memberNameLink"><a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapper.html#reset--">reset</a></span>()</code>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Resets cache affinity mapper to its initial state.</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="affinityKey-java.lang.Object-">
<!-- -->
</a>
<ul class="blockList">
<li class="blockList">
<h4>affinityKey</h4>
<pre><a href="http://docs.oracle.com/javase/8/docs/api/java/lang/Object.html?is-external=true" title="class or interface in java.lang">Object</a>&nbsp;affinityKey(<a href="http://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"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Maps passed in key to an alternate key which will be used for node affinity.</div>
<dl>
<dt><span class="paramLabel">Parameters:</span></dt>
<dd><code>key</code> - Key to map.</dd>
<dt><span class="returnLabel">Returns:</span></dt>
<dd>Key to be used for node-to-affinity mapping (may be the same
key as passed in).</dd>
</dl>
</li>
</ul>
<a name="reset--">
<!-- -->
</a>
<ul class="blockListLast">
<li class="blockList">
<h4>reset</h4>
<pre>void&nbsp;reset()</pre>
<div class="block"><span class="deprecatedLabel">Deprecated.</span>&nbsp;</div>
<div class="block">Resets cache affinity mapper to its initial state. This method will be called by
the system any time the affinity mapper has been sent to remote node where
it has to be reinitialized. If your implementation of affinity mapper
has no initialization logic, leave this method empty.</div>
</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/AffinityKeyMapper.html">Use</a></li>
<li><a href="package-tree.html">Tree</a></li>
<li><a href="../../../../../deprecated-list.html">Deprecated</a></li>
<li><a href="../../../../../index-all.html">Index</a></li>
<li><a href="../../../../../help-doc.html">Help</a></li>
</ul>
<div class="aboutLanguage">Ignite - In-Memory Data Fabric</div>
</div>
<div class="subNav">
<ul class="navList">
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityKeyMapped.html" title="annotation in org.apache.ignite.cache.affinity"><span class="typeNameLink">Prev&nbsp;Class</span></a></li>
<li><a href="../../../../../org/apache/ignite/cache/affinity/AffinityUuid.html" title="class in org.apache.ignite.cache.affinity"><span class="typeNameLink">Next&nbsp;Class</span></a></li>
</ul>
<ul class="navList">
<li><a href="../../../../../index.html?org/apache/ignite/cache/affinity/AffinityKeyMapper.html" target="_top">Frames</a></li>
<li><a href="AffinityKeyMapper.html" target="_top">No&nbsp;Frames</a></li>
</ul>
<ul class="navList" id="allclasses_navbar_bottom">
<li><a href="../../../../../allclasses-noframe.html">All&nbsp;Classes</a></li>
</ul>
<div>
<script type="text/javascript"><!--
allClassesLink = document.getElementById("allclasses_navbar_bottom");
if(window==top) {
allClassesLink.style.display = "block";
}
else {
allClassesLink.style.display = "none";
}
//-->
</script>
</div>
<div>
<ul class="subNavList">
<li>Summary:&nbsp;</li>
<li>Nested&nbsp;|&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.summary">Method</a></li>
</ul>
<ul class="subNavList">
<li>Detail:&nbsp;</li>
<li>Field&nbsp;|&nbsp;</li>
<li>Constr&nbsp;|&nbsp;</li>
<li><a href="#method.detail">Method</a></li>
</ul>
</div>
<a name="skip.navbar.bottom">
<!-- -->
</a></div>
<!-- ======== END OF BOTTOM NAVBAR ======= -->
<p class="legalCopy"><small><table width="100%" border="0" cellspacing=0 cellpadding=0 style="padding: 5px"> <tr> <td> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <a target=_blank href="https://ignite.apache.org"><nobr>2018 Copyright &#169; Apache Software Foundation</nobr></a> </td> </tr> </tbody> </table> </td> <td width="100%" align="right" valign="center"> <a href="https://twitter.com/ApacheIgnite" class="twitter-follow-button" data-show-count="false" data-size="large">Follow @ApacheIgnite</a> </td> </tr> <tr> <td colspan="2" valign="top" align="left"> <table style="padding-left: 0; margin: 0"> <tbody style="padding: 0; margin: 0"> <tr style="padding: 0; margin: 0"> <td> <b>Ignite Fabric</b> </td> <td>:&nbsp;&nbsp; ver. <strong>2.6.0</strong> </td> </tr> <tr style="padding: 0; margin: 0"> <td> <b>Release Date</b> </td> <td>:&nbsp;&nbsp; July 10 2018 </td> </tr> </tbody> </table> </td> </tr> </table></small></p>
</body>
</html>