Class DowningStrategy

    • Constructor Detail

      • DowningStrategy

        public DowningStrategy​(java.lang.String selfDc)
    • Method Detail

      • selfDc

        public java.lang.String selfDc()
      • unreachable

        public scala.collection.immutable.Set<UniqueAddress> unreachable()
      • unreachable

        public boolean unreachable​(Member m)
      • ordering

        protected scala.math.Ordering<Member> ordering()
      • role

        public abstract scala.Option<java.lang.String> role()
      • joining

        public scala.collection.immutable.SortedSet<Member> joining()
      • allMembersInDC

        public scala.collection.immutable.SortedSet<Member> allMembersInDC()
      • members

        public scala.collection.immutable.SortedSet<Member> members()
        All members in self DC, but doesn't contain Joining, WeaklyUp, Down and Exiting.
      • members

        public scala.collection.immutable.SortedSet<Member> members​(boolean includingPossiblyUp,
                                                                    boolean excludingPossiblyExiting)
        All members in self DC, but doesn't contain Joining, WeaklyUp, Down and Exiting.

        When includingPossiblyUp=true it also includes Joining and WeaklyUp members that could have been changed to Up on the other side of a partition.

        When excludingPossiblyExiting=true it doesn't include Leaving members that could have been changed to Exiting on the other side of the partition.

      • membersWithRole

        public scala.collection.immutable.SortedSet<Member> membersWithRole()
      • membersWithRole

        public scala.collection.immutable.SortedSet<Member> membersWithRole​(boolean includingPossiblyUp,
                                                                            boolean excludingPossiblyExiting)
      • reachableMembers

        public scala.collection.immutable.SortedSet<Member> reachableMembers()
      • reachableMembers

        public scala.collection.immutable.SortedSet<Member> reachableMembers​(boolean includingPossiblyUp,
                                                                             boolean excludingPossiblyExiting)
      • reachableMembersWithRole

        public scala.collection.immutable.SortedSet<Member> reachableMembersWithRole()
      • reachableMembersWithRole

        public scala.collection.immutable.SortedSet<Member> reachableMembersWithRole​(boolean includingPossiblyUp,
                                                                                     boolean excludingPossiblyExiting)
      • unreachableMembers

        public scala.collection.immutable.SortedSet<Member> unreachableMembers()
      • unreachableMembers

        public scala.collection.immutable.SortedSet<Member> unreachableMembers​(boolean includingPossiblyUp,
                                                                               boolean excludingPossiblyExiting)
      • unreachableMembersWithRole

        public scala.collection.immutable.SortedSet<Member> unreachableMembersWithRole()
      • unreachableMembersWithRole

        public scala.collection.immutable.SortedSet<Member> unreachableMembersWithRole​(boolean includingPossiblyUp,
                                                                                       boolean excludingPossiblyExiting)
      • addUnreachable

        public void addUnreachable​(Member m)
      • addReachable

        public void addReachable​(Member m)
      • add

        public void add​(Member m)
      • remove

        public void remove​(Member m)
      • setReachability

        public boolean setReachability​(Reachability r)
        Returns:
        true if it was changed
      • seenBy

        public scala.collection.immutable.Set<Address> seenBy()
      • setSeenBy

        public void setSeenBy​(scala.collection.immutable.Set<Address> s)
      • indirectlyConnected

        public scala.collection.immutable.Set<UniqueAddress> indirectlyConnected()
        Nodes that are marked as unreachable but can communicate with gossip via a 3rd party.

        Cycle in unreachability graph corresponds to that some node is both observing another node as unreachable, and is also observed as unreachable by someone else.

        Another indication of indirectly connected nodes is if a node is marked as unreachable, but it has still marked current gossip state as seen.

        Those cases will not happen for clean splits and crashed nodes.

      • hasIndirectlyConnected

        public boolean hasIndirectlyConnected()
      • unreachableButNotIndirectlyConnected

        public scala.collection.immutable.Set<UniqueAddress> unreachableButNotIndirectlyConnected()
      • isAllUnreachableDownOrExiting

        public boolean isAllUnreachableDownOrExiting()
      • lease

        public scala.Option<Lease> lease()