C# Class Akka.Cluster.Gossip

Represents the state of the cluster; cluster ring membership, ring convergence - all versioned by a vector clock. When a node is joining the `Member`, with status `Joining`, is added to `members`. If the joining node was downed it is moved from `overview.unreachable` (status `Down`) to `members` (status `Joining`). It cannot rejoin if not first downed. When convergence is reached the leader change status of `members` from `Joining` to `Up`. When failure detector consider a node as unavailable it will be moved from `members` to `overview.unreachable`. When a node is downed, either manually or automatically, its status is changed to `Down`. It is also removed from `overview.seen` table. The node will reside as `Down` in the `overview.unreachable` set until joining again and it will then go through the normal joining procedure. When a `Gossip` is received the version (vector clock) is used to determine if the received `Gossip` is newer or older than the current local `Gossip`. The received `Gossip` and local `Gossip` is merged in case of conflicting version, i.e. vector clocks without same history. When a node is told by the user to leave the cluster the leader will move it to `Leaving` and then rebalance and repartition the cluster and start hand-off by migrating the actors from the leaving node to the new partitions. Once this process is complete the leader will move the node to the `Exiting` state and once a convergence is complete move the node to `Removed` by removing it from the `members` set and sending a `Removed` command to the removed node telling it to shut itself down.
Afficher le fichier Open project: rogeralsing/akka.net Class Usage Examples

Méthodes publiques

Свойство Type Description
ConvergenceSkipUnreachableWithMemberStatus ImmutableHashSet
Empty Gossip
EmptyMembers ImmutableSortedSet
RemoveUnreachableWithMemberStatus ImmutableHashSet

Méthodes publiques

Méthode Description
AddMember ( Member member ) : Gossip

Adds a member to the member node ring.

Convergence ( UniqueAddress selfUniqueAddress ) : bool
Copy ( ImmutableSortedSet members = null, GossipOverview overview = null, VectorClock version = null ) : Gossip
Create ( ImmutableSortedSet members ) : Gossip
GetMember ( UniqueAddress node ) : Member
Gossip ( ImmutableSortedSet members ) : System
Gossip ( ImmutableSortedSet members, GossipOverview overview ) : System
Gossip ( ImmutableSortedSet members, GossipOverview overview, VectorClock version ) : System
HasMember ( UniqueAddress node ) : bool
Increment ( VectorClock node ) : Gossip

Increments the version for this 'Node'.

IsLeader ( UniqueAddress node, UniqueAddress selfUniqueAddress ) : bool
Leader ( UniqueAddress selfUniqueAddress ) : UniqueAddress
Merge ( Gossip that ) : Gossip
MergeSeen ( Gossip that ) : Gossip
OnlySeen ( UniqueAddress node ) : Gossip

Marks the gossip as seen by only this node (address) by replacing the 'gossip.overview.seen'

RoleLeader ( string role, UniqueAddress selfUniqueAddress ) : UniqueAddress
Seen ( UniqueAddress node ) : Gossip

Marks the gossip as seen by this node (address) by updating the address entry in the 'gossip.overview.seen'

SeenByNode ( UniqueAddress node ) : bool

Has this Gossip been seen by this node.

ToString ( ) : string

Private Methods

Méthode Description
AssertInvariants ( ) : void
LeaderOf ( ImmutableSortedSet mbrs, UniqueAddress selfUniqueAddress ) : UniqueAddress

Method Details

AddMember() public méthode

Adds a member to the member node ring.
public AddMember ( Member member ) : Gossip
member Member
Résultat Gossip

Convergence() public méthode

public Convergence ( UniqueAddress selfUniqueAddress ) : bool
selfUniqueAddress UniqueAddress
Résultat bool

Copy() public méthode

public Copy ( ImmutableSortedSet members = null, GossipOverview overview = null, VectorClock version = null ) : Gossip
members ImmutableSortedSet
overview GossipOverview
version VectorClock
Résultat Gossip

Create() public static méthode

public static Create ( ImmutableSortedSet members ) : Gossip
members ImmutableSortedSet
Résultat Gossip

GetMember() public méthode

public GetMember ( UniqueAddress node ) : Member
node UniqueAddress
Résultat Member

Gossip() public méthode

public Gossip ( ImmutableSortedSet members ) : System
members ImmutableSortedSet
Résultat System

Gossip() public méthode

public Gossip ( ImmutableSortedSet members, GossipOverview overview ) : System
members ImmutableSortedSet
overview GossipOverview
Résultat System

Gossip() public méthode

public Gossip ( ImmutableSortedSet members, GossipOverview overview, VectorClock version ) : System
members ImmutableSortedSet
overview GossipOverview
version VectorClock
Résultat System

HasMember() public méthode

public HasMember ( UniqueAddress node ) : bool
node UniqueAddress
Résultat bool

Increment() public méthode

Increments the version for this 'Node'.
public Increment ( VectorClock node ) : Gossip
node VectorClock
Résultat Gossip

IsLeader() public méthode

public IsLeader ( UniqueAddress node, UniqueAddress selfUniqueAddress ) : bool
node UniqueAddress
selfUniqueAddress UniqueAddress
Résultat bool

Leader() public méthode

public Leader ( UniqueAddress selfUniqueAddress ) : UniqueAddress
selfUniqueAddress UniqueAddress
Résultat UniqueAddress

Merge() public méthode

public Merge ( Gossip that ) : Gossip
that Gossip
Résultat Gossip

MergeSeen() public méthode

public MergeSeen ( Gossip that ) : Gossip
that Gossip
Résultat Gossip

OnlySeen() public méthode

Marks the gossip as seen by only this node (address) by replacing the 'gossip.overview.seen'
public OnlySeen ( UniqueAddress node ) : Gossip
node UniqueAddress
Résultat Gossip

RoleLeader() public méthode

public RoleLeader ( string role, UniqueAddress selfUniqueAddress ) : UniqueAddress
role string
selfUniqueAddress UniqueAddress
Résultat UniqueAddress

Seen() public méthode

Marks the gossip as seen by this node (address) by updating the address entry in the 'gossip.overview.seen'
public Seen ( UniqueAddress node ) : Gossip
node UniqueAddress
Résultat Gossip

SeenByNode() public méthode

Has this Gossip been seen by this node.
public SeenByNode ( UniqueAddress node ) : bool
node UniqueAddress
Résultat bool

ToString() public méthode

public ToString ( ) : string
Résultat string

Property Details

ConvergenceSkipUnreachableWithMemberStatus public_oe static_oe property

public static ImmutableHashSet ConvergenceSkipUnreachableWithMemberStatus
Résultat ImmutableHashSet

Empty public_oe static_oe property

public static Gossip,Akka.Cluster Empty
Résultat Gossip

EmptyMembers public_oe static_oe property

public static ImmutableSortedSet EmptyMembers
Résultat ImmutableSortedSet

RemoveUnreachableWithMemberStatus public_oe static_oe property

public static ImmutableHashSet RemoveUnreachableWithMemberStatus
Résultat ImmutableHashSet