Class SimpleAssignmentStrategy.AnalysisContext.StrengthComparator

java.lang.Object
com.tangosol.net.partition.SimpleAssignmentStrategy.AnalysisContext.StrengthComparator
All Implemented Interfaces:
Comparator
Enclosing class:
SimpleAssignmentStrategy.AnalysisContext

public class SimpleAssignmentStrategy.AnalysisContext.StrengthComparator extends Object implements Comparator
StrengthComparator is an Comparator that can be used to compare two Member objects based on their "distance" from a given set of members (as represented by an Ownership object). Member distances are expressed with the granularity of "machine", "rack", and "site".

A member is ordered "lower" than another member if it has a larger combined distance from the reference members (ownership) (i.e. it is "stronger"). Members with equivalent distances are ordered arbitrarily.

Note: This comparator does not define an ordering that is "consistent with equals". If used in a context requiring such a natural ordering, it should be chained with comparator that does provide a natural ordering.

  • Field Details

    • m_owners

      protected Ownership m_owners
      The ownership.
  • Constructor Details

    • StrengthComparator

      public StrengthComparator(Ownership owners)
      Construct a StrengthComparator for the specified reference ownership.
      Parameters:
      owners - the ownership, from which to determine member strength
  • Method Details

    • getOwnership

      public Ownership getOwnership()
      Return the ownership to use in comparing member strength.
      Returns:
      the ownership
    • compare

      public int compare(Object o1, Object o2)
      Specified by:
      compare in interface Comparator
    • getDistance

      protected int getDistance(Member member)
      Return the "distance" of the specified member from the reference ownership. The distance reflects granularities of "machine", "rack" and "site", and in the case of multiple-backups, reflects combined distances to each backup.
      Parameters:
      member - the member to return the distance for
      Returns:
      the "distance"
    • getDistance

      protected int getDistance(Member member1, Member member2)
      Return the "distance" between the specified members.
      Parameters:
      member1 - the first member
      member2 - the second member
      Returns:
      the "distance" between the specified members