Search Results for

    Show / Hide Table of Contents

    Interface ICacheAffinity

    Provides affinity information to detect which node is primary and which nodes are backups for a partitioned cache. You can get an instance of this interface by calling GetAffinity(String) method.

    Mapping of a key to a node is a three-step operation. First step will get an affinity key for given key using CacheAffinityKeyMapper. If mapper is not specified, the original key will be used. Second step will map affinity key to partition using CacheAffinityFunction.partition(Object) method. Third step will map obtained partition to nodes for current grid topology version.

    Interface provides various mapKeysToNodes(...) methods which provide node affinity mapping for given keys. All mapKeysToNodes(...) methods are not transactional and will not enlist keys into ongoing transaction.

    All members are thread-safe and may be used concurrently from multiple threads.

    Namespace: Apache.Ignite.Core.Cache
    Assembly: Apache.Ignite.Core.dll
    Syntax
    public interface ICacheAffinity

    Properties

    Partitions

    Gets number of partitions in cache according to configured affinity function.

    Declaration
    int Partitions { get; }
    Property Value
    Type Description
    System.Int32

    Number of cache partitions.

    Methods

    GetAffinityKey<TK, TR>(TK)

    Maps passed in key to a key which will be used for node affinity.

    Declaration
    TR GetAffinityKey<TK, TR>(TK key)
    Parameters
    Type Name Description
    TK key

    Key to map.

    Returns
    Type Description
    TR

    Key to be used for node-to-affinity mapping (may be the same key as passed in).

    Type Parameters
    Name Description
    TK
    TR

    GetAllPartitions(IClusterNode)

    Gets partition ids for which nodes of the given projection has ownership (either primary or backup).

    Declaration
    int[] GetAllPartitions(IClusterNode n)
    Parameters
    Type Name Description
    IClusterNode n

    Node.

    Returns
    Type Description
    System.Int32[]

    Partition ids for which given projection has ownership.

    GetBackupPartitions(IClusterNode)

    Gets partition ids for which nodes of the given projection has backup ownership.

    Declaration
    int[] GetBackupPartitions(IClusterNode n)
    Parameters
    Type Name Description
    IClusterNode n

    Node.

    Returns
    Type Description
    System.Int32[]

    Partition ids for which given projection has backup ownership.

    GetPartition<TK>(TK)

    Gets partition id for the given key.

    Declaration
    int GetPartition<TK>(TK key)
    Parameters
    Type Name Description
    TK key

    Key to get partition id for.

    Returns
    Type Description
    System.Int32

    Partition id.

    Type Parameters
    Name Description
    TK

    GetPrimaryPartitions(IClusterNode)

    Gets partition ids for which nodes of the given projection has primary ownership.

    Declaration
    int[] GetPrimaryPartitions(IClusterNode n)
    Parameters
    Type Name Description
    IClusterNode n

    Node.

    Returns
    Type Description
    System.Int32[]

    Partition ids for which given projection has primary ownership.

    IsBackup<TK>(IClusterNode, TK)

    Returns 'true' if given node is the backup node for given key.

    Declaration
    bool IsBackup<TK>(IClusterNode n, TK key)
    Parameters
    Type Name Description
    IClusterNode n

    Node.

    TK key

    Key.

    Returns
    Type Description
    System.Boolean

    'True' if given node is the backup node for given key.

    Type Parameters
    Name Description
    TK

    IsPrimary<TK>(IClusterNode, TK)

    Returns 'true' if given node is the primary node for given key.

    Declaration
    bool IsPrimary<TK>(IClusterNode n, TK key)
    Parameters
    Type Name Description
    IClusterNode n

    Node.

    TK key

    Key.

    Returns
    Type Description
    System.Boolean

    'True' if given node is the primary node for given key.

    Type Parameters
    Name Description
    TK

    IsPrimaryOrBackup<TK>(IClusterNode, TK)

    Returns 'true' if given node is either primary or backup node for given key.

    Declaration
    bool IsPrimaryOrBackup<TK>(IClusterNode n, TK key)
    Parameters
    Type Name Description
    IClusterNode n

    Node.

    TK key

    Key.

    Returns
    Type Description
    System.Boolean

    'True' if given node is either primary or backup node for given key.

    Type Parameters
    Name Description
    TK

    MapKeysToNodes<TK>(IEnumerable<TK>)

    This method provides ability to detect which keys are mapped to which nodes. Use it to determine which nodes are storing which keys prior to sending jobs that access these keys.

    Declaration
    IDictionary<IClusterNode, IList<TK>> MapKeysToNodes<TK>(IEnumerable<TK> keys)
    Parameters
    Type Name Description
    IEnumerable<TK> keys

    Keys to map to nodes.

    Returns
    Type Description
    IDictionary<IClusterNode, IList<TK>>

    Map of nodes to keys or empty map if there are no alive nodes for this cache.

    Type Parameters
    Name Description
    TK

    MapKeyToNode<TK>(TK)

    This method provides ability to detect to which primary node the given key is mapped. Use it to determine which nodes are storing which keys prior to sending jobs that access these keys.

    Declaration
    IClusterNode MapKeyToNode<TK>(TK key)
    Parameters
    Type Name Description
    TK key

    Key to map to a node.

    Returns
    Type Description
    IClusterNode

    Primary node for the key or null if there are no alive nodes for this cache.

    Type Parameters
    Name Description
    TK

    MapKeyToPrimaryAndBackups<TK>(TK)

    Gets primary and backup nodes for the key. Note that primary node is always first in the returned collection.

    Declaration
    IList<IClusterNode> MapKeyToPrimaryAndBackups<TK>(TK key)
    Parameters
    Type Name Description
    TK key
    Returns
    Type Description
    IList<IClusterNode>
    Type Parameters
    Name Description
    TK

    MapPartitionsToNodes(IEnumerable<Int32>)

    Gets primary nodes for the given partitions.

    Declaration
    IDictionary<int, IClusterNode> MapPartitionsToNodes(IEnumerable<int> parts)
    Parameters
    Type Name Description
    IEnumerable<System.Int32> parts

    Partition ids.

    Returns
    Type Description
    IDictionary<System.Int32, IClusterNode>

    Mapping of given partitions to their primary nodes.

    MapPartitionToNode(Int32)

    Gets primary node for the given partition.

    Declaration
    IClusterNode MapPartitionToNode(int part)
    Parameters
    Type Name Description
    System.Int32 part

    Partition id.

    Returns
    Type Description
    IClusterNode

    Primary node for the given partition.

    MapPartitionToPrimaryAndBackups(Int32)

    Gets primary and backup nodes for partition. Note that primary node is always first in the returned collection.

    Declaration
    IList<IClusterNode> MapPartitionToPrimaryAndBackups(int part)
    Parameters
    Type Name Description
    System.Int32 part

    Partition to get affinity nodes for.

    Returns
    Type Description
    IList<IClusterNode>

    Collection of primary and backup nodes for partition with primary node always first

    In This Article
    Back to top © 2015 - 2019 The Apache Software Foundation