mirror of
https://gitlab.com/fabinfra/fabaccess/bffh.git
synced 2024-12-22 19:53:49 +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 {
|
||||
started
|
||||
[label="BFFH just started"];
|
||||
created
|
||||
[label="Machine was newly created"];
|
||||
rank = 0
|
||||
subgraph "cluster_internal_state" {
|
||||
rank = 1
|
||||
ctr = applied
|
||||
start
|
||||
[shape=doublecircle, label="BFFH"]
|
||||
created
|
||||
[label="Machine object created"];
|
||||
start -> created;
|
||||
|
||||
fresh
|
||||
[label="State is fresh"];
|
||||
created -> attach
|
||||
[label="New state or loaded from disk"];
|
||||
|
||||
started -> fresh;
|
||||
created -> fresh;
|
||||
attach
|
||||
[label="Attach actor", shape=box];
|
||||
|
||||
unapplied
|
||||
[label="Stored but not applied"];
|
||||
applied
|
||||
[label="All actors are done"];
|
||||
verified
|
||||
[label="State was verified"];
|
||||
unapplied
|
||||
[label="Unapplied"];
|
||||
applied
|
||||
[label="Applied"];
|
||||
verified
|
||||
[label="Verified"];
|
||||
|
||||
fresh -> unapplied
|
||||
[label="statechange received"];
|
||||
unapplied -> applied
|
||||
[label="All actors have finished processing"];
|
||||
applied -> verified
|
||||
[label="All actors have verified that the state change happened in real life too"];
|
||||
wait_apply
|
||||
[label="Wait ∀ Actors", shape=box]
|
||||
wait_verify
|
||||
[label="Wait ∀ Actors", shape=box]
|
||||
|
||||
applied -> unapplied
|
||||
[label="State was changed or a new actor was attached"];
|
||||
verified -> unapplied
|
||||
[label="State was changed or a new actor was attached"];
|
||||
unapplied -> wait_apply -> applied;
|
||||
applied -> wait_verify -> verified;
|
||||
|
||||
subgraph "actor" {
|
||||
actor_fresh
|
||||
[label="Actor was just constructed"];
|
||||
actor_attached
|
||||
[label="Actor was just attached to a machine"];
|
||||
actor_unapplied
|
||||
applied -> unapplied
|
||||
[label="statechange received"];
|
||||
verified -> unapplied
|
||||
[label="statechange received"];
|
||||
unapplied -> unapplied
|
||||
[label="statechange received"];
|
||||
actor_applied
|
||||
[label="statechange processed"];
|
||||
actor_verified
|
||||
[label="Measured real world and it matches the statechange"];
|
||||
|
||||
actor_fresh -> actor_attached
|
||||
[label="Initial state received"];
|
||||
actor_attached -> actor_applied
|
||||
[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 -> attach -> unapplied;
|
||||
applied -> attach -> unapplied;
|
||||
verified -> attach -> unapplied;
|
||||
}
|
||||
|
||||
unapplied -> actor_unapplied
|
||||
[label="send statechange to actor"];
|
||||
actor_applied -> applied
|
||||
[label="actor processed statechange"];
|
||||
actor_verified -> verified
|
||||
[label="actor verifies statechange"];
|
||||
|
||||
subgraph "cluster_actor" {
|
||||
rank = 1
|
||||
center = actor_applied
|
||||
actor_start
|
||||
[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