mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2024-11-22 06:47:56 +01:00
cleanup
This commit is contained in:
parent
c5f72d9508
commit
75f8911c1f
131
state.dot
131
state.dot
@ -1,62 +1,93 @@
|
|||||||
strict digraph state {
|
strict digraph state {
|
||||||
started
|
rank = 0
|
||||||
[label="BFFH just started"];
|
subgraph "cluster_internal_state" {
|
||||||
created
|
rank = 1
|
||||||
[label="Machine was newly created"];
|
ctr = applied
|
||||||
|
start
|
||||||
|
[shape=doublecircle, label="BFFH"]
|
||||||
|
created
|
||||||
|
[label="Machine object created"];
|
||||||
|
start -> created;
|
||||||
|
|
||||||
fresh
|
created -> attach
|
||||||
[label="State is fresh"];
|
[label="New state or loaded from disk"];
|
||||||
|
|
||||||
started -> fresh;
|
attach
|
||||||
created -> fresh;
|
[label="Attach actor", shape=box];
|
||||||
|
|
||||||
unapplied
|
unapplied
|
||||||
[label="Stored but not applied"];
|
[label="Unapplied"];
|
||||||
applied
|
applied
|
||||||
[label="All actors are done"];
|
[label="Applied"];
|
||||||
verified
|
verified
|
||||||
[label="State was verified"];
|
[label="Verified"];
|
||||||
|
|
||||||
fresh -> unapplied
|
wait_apply
|
||||||
[label="statechange received"];
|
[label="Wait ∀ Actors", shape=box]
|
||||||
unapplied -> applied
|
wait_verify
|
||||||
[label="All actors have finished processing"];
|
[label="Wait ∀ Actors", shape=box]
|
||||||
applied -> verified
|
|
||||||
[label="All actors have verified that the state change happened in real life too"];
|
|
||||||
|
|
||||||
applied -> unapplied
|
unapplied -> wait_apply -> applied;
|
||||||
[label="State was changed or a new actor was attached"];
|
applied -> wait_verify -> verified;
|
||||||
verified -> unapplied
|
|
||||||
[label="State was changed or a new actor was attached"];
|
|
||||||
|
|
||||||
subgraph "actor" {
|
applied -> unapplied
|
||||||
actor_fresh
|
[label="statechange received"];
|
||||||
[label="Actor was just constructed"];
|
verified -> unapplied
|
||||||
actor_attached
|
[label="statechange received"];
|
||||||
[label="Actor was just attached to a machine"];
|
unapplied -> unapplied
|
||||||
actor_unapplied
|
|
||||||
[label="statechange received"];
|
[label="statechange received"];
|
||||||
actor_applied
|
|
||||||
[label="statechange processed"];
|
|
||||||
actor_verified
|
|
||||||
[label="Measured real world and it matches the statechange"];
|
|
||||||
|
|
||||||
actor_fresh -> actor_attached
|
unapplied -> attach -> unapplied;
|
||||||
[label="Initial state received"];
|
applied -> attach -> unapplied;
|
||||||
actor_attached -> actor_applied
|
verified -> attach -> unapplied;
|
||||||
[label="Initial state applied (potentially noop)"];
|
|
||||||
actor_attached -> actor_unapplied
|
|
||||||
[label="statechange received before finishing initial application"];
|
|
||||||
actor_unapplied -> actor_applied
|
|
||||||
[label="processed statechange"];
|
|
||||||
actor_applied -> actor_verified
|
|
||||||
[label="measure"];
|
|
||||||
}
|
}
|
||||||
|
|
||||||
unapplied -> actor_unapplied
|
|
||||||
[label="send statechange to actor"];
|
subgraph "cluster_actor" {
|
||||||
actor_applied -> applied
|
rank = 1
|
||||||
[label="actor processed statechange"];
|
center = actor_applied
|
||||||
actor_verified -> verified
|
actor_start
|
||||||
[label="actor verifies statechange"];
|
[shape=doublecircle, label="Actor"];
|
||||||
|
actor_fresh
|
||||||
|
[label="Actor was just constructed"];
|
||||||
|
actor_start -> actor_fresh;
|
||||||
|
|
||||||
|
actor_attached
|
||||||
|
[label="Attached"];
|
||||||
|
actor_unapplied
|
||||||
|
[label="Unapplied"];
|
||||||
|
actor_applied
|
||||||
|
[label="Applied"];
|
||||||
|
actor_verified
|
||||||
|
[label="Verified"];
|
||||||
|
|
||||||
|
wait_initial
|
||||||
|
[label="Recv", shape=box];
|
||||||
|
wait_state
|
||||||
|
[label="Recv", shape=box];
|
||||||
|
|
||||||
|
actor_fresh -> wait_initial -> actor_attached;
|
||||||
|
|
||||||
|
actor_attached -> actor_applied
|
||||||
|
[label="initialize/apply"];
|
||||||
|
actor_unapplied -> actor_applied
|
||||||
|
[label="apply"];
|
||||||
|
actor_applied -> actor_verified
|
||||||
|
[label="verify"];
|
||||||
|
|
||||||
|
actor_unapplied -> wait_state;
|
||||||
|
actor_applied -> wait_state;
|
||||||
|
actor_verified -> wait_state;
|
||||||
|
|
||||||
|
wait_state -> actor_unapplied;
|
||||||
|
}
|
||||||
|
|
||||||
|
attach -> wait_initial
|
||||||
|
[label="Send initial state to that actor", style=dotted]
|
||||||
|
unapplied -> wait_state
|
||||||
|
[label="Send new state to all actors", style=dotted];
|
||||||
|
actor_applied -> wait_apply
|
||||||
|
[label="Confirm apply", style=dotted];
|
||||||
|
actor_verified -> wait_verify
|
||||||
|
[label="Confirm verify", style=dotted];
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user