﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class AffinityFunctionBase
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class AffinityFunctionBase
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.58.4.0">
    
    <link rel="shortcut icon" href="../images/favicon.ico">
    <link rel="stylesheet" href="../styles/docfx.vendor.css">
    <link rel="stylesheet" href="../styles/docfx.css">
    <link rel="stylesheet" href="../styles/main.css">
    <meta property="docfx:navrel" content="../toc.html">
    <meta property="docfx:tocrel" content="toc.html">
    
    <meta property="docfx:rel" content="../">
    
  </head>
  <body data-spy="scroll" data-target="#affix" data-offset="120">
    <div id="wrapper">
      <header>
        
        <nav id="autocollapse" class="navbar navbar-inverse ng-scope" role="navigation">
          <div class="container">
            <div class="navbar-header">
              <button type="button" class="navbar-toggle" data-toggle="collapse" data-target="#navbar">
                <span class="sr-only">Toggle navigation</span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
                <span class="icon-bar"></span>
              </button>
              
              <a class="navbar-brand" href="../index.html">
                <img id="logo" class="svg" src="../images/logo_ignite_32_32.png" alt="">
              </a>
            </div>
            <div class="collapse navbar-collapse" id="navbar">
              <form class="navbar-form navbar-right" role="search" id="search">
                <div class="form-group">
                  <input type="text" class="form-control" id="search-query" placeholder="Search" autocomplete="off">
                </div>
              </form>
            </div>
          </div>
        </nav>
        
        <div class="subnav navbar navbar-default">
          <div class="container hide-when-search" id="breadcrumb">
            <ul class="breadcrumb">
              <li></li>
            </ul>
          </div>
        </div>
      </header>
      <div class="container body-content">
        
        <div id="search-results">
          <div class="search-list">Search Results for <span></span></div>
          <div class="sr-items">
            <p><i class="glyphicon glyphicon-refresh index-loading"></i></p>
          </div>
          <ul id="pagination" data-first="First" data-prev="Previous" data-next="Next" data-last="Last"></ul>
        </div>
      </div>
      <div role="main" class="container body-content hide-when-search">
        
        <div class="sidenav hide-when-search">
          <a class="btn toc-toggle collapse" data-toggle="collapse" href="#sidetoggle" aria-expanded="false" aria-controls="sidetoggle">Show / Hide Table of Contents</a>
          <div class="sidetoggle collapse" id="sidetoggle">
            <div id="sidetoc"></div>
          </div>
        </div>
        <div class="article row grid-right">
          <div class="col-md-10">
            <article class="content wrap" id="_content" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase">
  
  
  <h1 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase" class="text-break">Class AffinityFunctionBase
  </h1>
  <div class="markdown level0 summary"><p>Base class for predefined affinity functions.</p>
</div>
  <div class="markdown level0 conceptual"></div>
  <div class="inheritance">
    <h5>Inheritance</h5>
    <div class="level0"><span class="xref">System.Object</span></div>
    <div class="level1"><span class="xref">AffinityFunctionBase</span></div>
      <div class="level2"><a class="xref" href="Apache.Ignite.Core.Cache.Affinity.Rendezvous.RendezvousAffinityFunction.html">RendezvousAffinityFunction</a></div>
  </div>
  <div classs="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="Apache.Ignite.Core.Cache.Affinity.IAffinityFunction.html">IAffinityFunction</a></div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.html">Apache.Ignite.Core.Cache.Affinity</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public abstract class AffinityFunctionBase : object, IAffinityFunction</code></pre>
  </div>
  <h3 id="fields">Fields
  </h3>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_DefaultPartitions" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.DefaultPartitions">DefaultPartitions</h4>
  <div class="markdown level1 summary"><p>The default value for <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_Partitions">Partitions</a> property. </p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public const int DefaultPartitions = null</code></pre>
  </div>
  <h5 class="fieldValue">Field Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_ExcludeNeighbors_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.ExcludeNeighbors*"></a>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_ExcludeNeighbors" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.ExcludeNeighbors">ExcludeNeighbors</h4>
  <div class="markdown level1 summary"><p>Gets or sets a value indicating whether to exclude same-host-neighbors from being backups of each other.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual bool ExcludeNeighbors { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Boolean</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_Partitions_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.Partitions*"></a>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_Partitions" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.Partitions">Partitions</h4>
  <div class="markdown level1 summary"><p>Gets or sets the total number of partitions.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual int Partitions { get; set; }</code></pre>
  </div>
  <h5 class="propertyValue">Property Value</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td></td>
      </tr>
    </tbody>
  </table>
  <h3 id="methods">Methods
  </h3>
  <a id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_AssignPartitions_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.AssignPartitions*"></a>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_AssignPartitions_Apache_Ignite_Core_Cache_Affinity_AffinityFunctionContext_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.AssignPartitions(Apache.Ignite.Core.Cache.Affinity.AffinityFunctionContext)">AssignPartitions(AffinityFunctionContext)</h4>
  <div class="markdown level1 summary"><p>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.
<pare></pare>
Note that partitioned affinity must obey the following contract: given that node</p>
<pre><code>N</code></pre> is primary for some key <pre><code>K</code></pre>, if any other node(s) leave
<p>grid and no node joins grid, node <pre><code>N</code></pre> will remain primary for key <pre><code>K</code></pre>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual IEnumerable&lt;IEnumerable&lt;IClusterNode&gt;&gt; AssignPartitions(AffinityFunctionContext context)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionContext.html">AffinityFunctionContext</a></td>
        <td><span class="parametername">context</span></td>
        <td><p>The affinity function context.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">IEnumerable</span>&lt;<span class="xref">IEnumerable</span>&lt;<a class="xref" href="Apache.Ignite.Core.Cluster.IClusterNode.html">IClusterNode</a>&gt;&gt;</td>
        <td><p>A collection of partitions, where each partition is a collection of nodes,
where first node is a primary node, and other nodes are backup nodes.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_GetPartition_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.GetPartition*"></a>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_GetPartition_System_Object_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.GetPartition(System.Object)">GetPartition(Object)</h4>
  <div class="markdown level1 summary"><p>Gets partition number for a given key starting from 0. Partitioned caches
should make sure that keys are about evenly distributed across all partitions
from 0 to <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_Partitions">Partitions</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.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual int GetPartition(object key)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Object</span></td>
        <td><span class="parametername">key</span></td>
        <td><p>Key to get partition for.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h5 class="returns">Returns</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">System.Int32</span></td>
        <td><p>Partition number for a given key.</p>
</td>
      </tr>
    </tbody>
  </table>
  <a id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_RemoveNode_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.RemoveNode*"></a>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_RemoveNode_Guid_" data-uid="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.RemoveNode(Guid)">RemoveNode(Guid)</h4>
  <div class="markdown level1 summary"><p>Removes node from affinity. This method is called when it is safe to remove
disconnected node from affinity mapping.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public virtual void RemoveNode(Guid nodeId)</code></pre>
  </div>
  <h5 class="parameters">Parameters</h5>
  <table class="table table-bordered table-striped table-condensed">
    <thead>
      <tr>
        <th>Type</th>
        <th>Name</th>
        <th>Description</th>
      </tr>
    </thead>
    <tbody>
      <tr>
        <td><span class="xref">Guid</span></td>
        <td><span class="parametername">nodeId</span></td>
        <td><p>The node identifier.</p>
</td>
      </tr>
    </tbody>
  </table>
  <h3 id="implements">Implements</h3>
  <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.IAffinityFunction.html">IAffinityFunction</a>
  </div>
</article>
          </div>
          
          <div class="hidden-sm col-md-2" role="complementary">
            <div class="sideaffix">
              <nav class="bs-docs-sidebar hidden-print hidden-xs hidden-sm affix" id="affix">
                <h5>In This Article</h5>
                <div></div>
              </nav>
            </div>
          </div>
        </div>
      </div>
      
      <footer>
        <div class="grad-bottom"></div>
        <div class="footer">
          <div class="container">
            <span class="pull-right">
              <a href="#top">Back to top</a>
            </span>
            © 2015 - 2019 The Apache Software Foundation
            
          </div>
        </div>
      </footer>
    </div>
    
    <script type="text/javascript" src="../styles/docfx.vendor.js"></script>
    <script type="text/javascript" src="../styles/docfx.js"></script>
    <script type="text/javascript" src="../styles/main.js"></script>
  </body>
</html>
