﻿<!DOCTYPE html>
<!--[if IE]><![endif]-->
<html>
  
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <title>Class RendezvousAffinityFunction
   | Apache Ignite.NET </title>
    <meta name="viewport" content="width=device-width">
    <meta name="title" content="Class RendezvousAffinityFunction
   | Apache Ignite.NET ">
    <meta name="generator" content="docfx 2.24.0.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">
    <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"></div>
          <div class="sr-items"></div>
          <ul id="pagination"></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.Rendezvous.RendezvousAffinityFunction">
  
  
  <h1 id="Apache_Ignite_Core_Cache_Affinity_Rendezvous_RendezvousAffinityFunction" data-uid="Apache.Ignite.Core.Cache.Affinity.Rendezvous.RendezvousAffinityFunction" class="text-break">Class RendezvousAffinityFunction
  </h1>
  <div class="markdown level0 summary"><p>Affinity function for partitioned cache based on Highest Random Weight algorithm.</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"><a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html">AffinityFunctionBase</a></div>
    <div class="level2"><span class="xref">RendezvousAffinityFunction</span></div>
  </div>
  <div classs="implements">
    <h5>Implements</h5>
    <div><a class="xref" href="Apache.Ignite.Core.Cache.Affinity.IAffinityFunction.html">IAffinityFunction</a></div>
  </div>
  <div class="inheritedMembers">
    <h5>Inherited Members</h5>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_DefaultPartitions">AffinityFunctionBase.DefaultPartitions</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_Partitions">AffinityFunctionBase.Partitions</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_GetPartition_System_Object_">AffinityFunctionBase.GetPartition(Object)</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_RemoveNode_System_Guid_">AffinityFunctionBase.RemoveNode(Guid)</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_AssignPartitions_Apache_Ignite_Core_Cache_Affinity_AffinityFunctionContext_">AffinityFunctionBase.AssignPartitions(AffinityFunctionContext)</a>
    </div>
    <div>
      <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_ExcludeNeighbors">AffinityFunctionBase.ExcludeNeighbors</a>
    </div>
    <div>
      <span class="xref">System.Object.ToString()</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.Equals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.ReferenceEquals(System.Object, System.Object)</span>
    </div>
    <div>
      <span class="xref">System.Object.GetHashCode()</span>
    </div>
    <div>
      <span class="xref">System.Object.GetType()</span>
    </div>
    <div>
      <span class="xref">System.Object.MemberwiseClone()</span>
    </div>
  </div>
  <h6><strong>Namespace</strong>: <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.Rendezvous.html">Apache.Ignite.Core.Cache.Affinity.Rendezvous</a></h6>
  <h6><strong>Assembly</strong>: Apache.Ignite.Core.dll</h6>
  <h5 id="Apache_Ignite_Core_Cache_Affinity_Rendezvous_RendezvousAffinityFunction_syntax">Syntax</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">[Serializable]
public class RendezvousAffinityFunction : AffinityFunctionBase, IAffinityFunction</code></pre>
  </div>
  <h3 id="properties">Properties
  </h3>
  <a id="Apache_Ignite_Core_Cache_Affinity_Rendezvous_RendezvousAffinityFunction_AffinityBackupFilter_" data-uid="Apache.Ignite.Core.Cache.Affinity.Rendezvous.RendezvousAffinityFunction.AffinityBackupFilter*"></a>
  <h4 id="Apache_Ignite_Core_Cache_Affinity_Rendezvous_RendezvousAffinityFunction_AffinityBackupFilter" data-uid="Apache.Ignite.Core.Cache.Affinity.Rendezvous.RendezvousAffinityFunction.AffinityBackupFilter">AffinityBackupFilter</h4>
  <div class="markdown level1 summary"><p>Gets or sets an 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 <a class="xref" href="Apache.Ignite.Core.Cache.Affinity.Rendezvous.RendezvousAffinityFunction.html#Apache_Ignite_Core_Cache_Affinity_Rendezvous_RendezvousAffinityFunction_AffinityBackupFilter">AffinityBackupFilter</a> is ignored when
<a class="xref" href="Apache.Ignite.Core.Cache.Affinity.AffinityFunctionBase.html#Apache_Ignite_Core_Cache_Affinity_AffinityFunctionBase_ExcludeNeighbors">ExcludeNeighbors</a> is <code>true</code>.
<p>
Only one predefined implementation is supported for now:
<a class="xref" href="Apache.Ignite.Core.Cache.Affinity.Rendezvous.ClusterNodeAttributeAffinityBackupFilter.html">ClusterNodeAttributeAffinityBackupFilter</a>.</p>
</div>
  <div class="markdown level1 conceptual"></div>
  <h5 class="decalaration">Declaration</h5>
  <div class="codewrapper">
    <pre><code class="lang-csharp hljs">public IAffinityBackupFilter AffinityBackupFilter { 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><a class="xref" href="Apache.Ignite.Core.Cache.Affinity.IAffinityBackupFilter.html">IAffinityBackupFilter</a></td>
        <td></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">
              <!-- <p><a class="back-to-top" href="#top">Back to top</a><p> -->
              </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>
