Class HashConfiguration

  • All Implemented Interfaces:
    org.infinispan.commons.configuration.attributes.Matchable<HashConfiguration>

    public class HashConfiguration
    extends Object
    implements org.infinispan.commons.configuration.attributes.Matchable<HashConfiguration>
    Allows fine-tuning of rehashing characteristics. Must only used with 'distributed' cache mode.
    Author:
    pmuir
    • Field Detail

      • CONSISTENT_HASH_FACTORY

        public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<ConsistentHashFactory> CONSISTENT_HASH_FACTORY
      • HASH

        public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<org.infinispan.commons.hash.Hash> HASH
      • NUM_OWNERS

        public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Integer> NUM_OWNERS
      • NUM_SEGMENTS

        public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Integer> NUM_SEGMENTS
      • CAPACITY_FACTOR

        public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<Float> CAPACITY_FACTOR
      • KEY_PARTITIONER

        public static final org.infinispan.commons.configuration.attributes.AttributeDefinition<KeyPartitioner> KEY_PARTITIONER
    • Method Detail

      • consistentHashFactory

        public ConsistentHashFactory<?> consistentHashFactory()
        The consistent hash factory in use.
      • hash

        @Deprecated
        public org.infinispan.commons.hash.Hash hash()
        Deprecated.
        Since 8.2, use keyPartitioner() instead.
        The hash function in use. Used as a bit spreader and a general hash code generator. Typically one of the the many default ConsistentHash implementations shipped.
      • numOwners

        public int numOwners()
        Number of cluster-wide replicas for each cache entry.
      • numSegments

        public int numSegments()
        Controls the total number of hash space segments (per cluster).

        A hash space segment is the granularity for key distribution in the cluster: a node can own (or primary-own) one or more full segments, but not a fraction of a segment. As such, larger numSegments values will mean a more even distribution of keys between nodes.

        On the other hand, the memory/bandwidth usage of the new consistent hash grows linearly with numSegments. So we recommend keeping numSegments <= 10 * clusterSize.

      • capacityFactor

        public float capacityFactor()
        Controls the proportion of entries that will reside on the local node, compared to the other nodes in the cluster. This is just a suggestion, there is no guarantee that a node with a capacity factor of 2 will have twice as many entries as a node with a capacity factor of 1.
      • groups

        public GroupsConfiguration groups()
        Configuration for various grouper definitions. See the user guide for more information.
      • attributes

        public org.infinispan.commons.configuration.attributes.AttributeSet attributes()
      • hashCode

        public int hashCode()
        Overrides:
        hashCode in class Object
      • matches

        public boolean matches​(HashConfiguration other)
        Specified by:
        matches in interface org.infinispan.commons.configuration.attributes.Matchable<HashConfiguration>