86 lines
2.5 KiB
Plaintext
86 lines
2.5 KiB
Plaintext
// vim: set sw=2 sts=2 :
|
|
digraph {
|
|
rankdir=BT
|
|
bgcolor=white
|
|
|
|
node [shape=plaintext]
|
|
node [fontcolor=black]
|
|
|
|
StandAlone [ style=filled,fillcolor=gray,label=StandAlone ]
|
|
|
|
node [fontcolor=lightgray]
|
|
|
|
Unconnected [ label=Unconnected ]
|
|
|
|
CommTrouble [ shape=record,
|
|
label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ]
|
|
|
|
node [fontcolor=gray]
|
|
|
|
subgraph cluster_try_connect {
|
|
label="try to connect, handshake"
|
|
rank=max
|
|
WFConnection [ label=WFConnection ]
|
|
WFReportParams [ label=WFReportParams ]
|
|
}
|
|
|
|
TearDown [ label=TearDown ]
|
|
|
|
Connected [ label=Connected,style=filled,fillcolor=green,fontcolor=black ]
|
|
|
|
node [fontcolor=lightblue]
|
|
|
|
StartingSyncS [ label=StartingSyncS ]
|
|
StartingSyncT [ label=StartingSyncT ]
|
|
|
|
subgraph cluster_bitmap_exchange {
|
|
node [fontcolor=red]
|
|
fontcolor=red
|
|
label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged"
|
|
|
|
WFBitMapT [ label=WFBitMapT ]
|
|
WFSyncUUID [ label=WFSyncUUID ]
|
|
WFBitMapS [ label=WFBitMapS ]
|
|
}
|
|
|
|
node [fontcolor=blue]
|
|
|
|
cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ]
|
|
|
|
node [shape=box,fontcolor=black]
|
|
|
|
// drbdadm [label="drbdadm connect"]
|
|
// handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."]
|
|
// comm_error [label="communication trouble"]
|
|
|
|
//
|
|
// edges
|
|
// --------------------------------------
|
|
|
|
StandAlone -> Unconnected [ label="drbdadm connect" ]
|
|
Unconnected -> StandAlone [ label="drbdadm disconnect\lor serious communication trouble" ]
|
|
Unconnected -> WFConnection [ label="receiver thread is started" ]
|
|
WFConnection -> WFReportParams [ headlabel="accept()\land/or \lconnect()\l" ]
|
|
|
|
WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ]
|
|
WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ]
|
|
|
|
WFReportParams -> WFBitMapS
|
|
WFReportParams -> WFBitMapT
|
|
WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false]
|
|
|
|
WFBitMapS -> cluster_resync:S
|
|
WFSyncUUID -> cluster_resync:T
|
|
|
|
edge [color=green]
|
|
cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ]
|
|
|
|
edge [color=red]
|
|
WFReportParams -> CommTrouble
|
|
Connected -> CommTrouble
|
|
cluster_resync:any -> CommTrouble
|
|
edge [color=black]
|
|
CommTrouble -> Unconnected [label="receiver thread is stopped" ]
|
|
|
|
}
|