Commit | Line | Data |
---|---|---|
b411b363 PR |
1 | // vim: set sw=2 sts=2 : |
2 | digraph { | |
3 | rankdir=BT | |
4 | bgcolor=white | |
5 | ||
6 | node [shape=plaintext] | |
7 | node [fontcolor=black] | |
8 | ||
9 | StandAlone [ style=filled,fillcolor=gray,label=StandAlone ] | |
10 | ||
11 | node [fontcolor=lightgray] | |
12 | ||
13 | Unconnected [ label=Unconnected ] | |
14 | ||
15 | CommTrouble [ shape=record, | |
16 | label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ] | |
17 | ||
18 | node [fontcolor=gray] | |
19 | ||
20 | subgraph cluster_try_connect { | |
21 | label="try to connect, handshake" | |
22 | rank=max | |
23 | WFConnection [ label=WFConnection ] | |
24 | WFReportParams [ label=WFReportParams ] | |
25 | } | |
26 | ||
27 | TearDown [ label=TearDown ] | |
28 | ||
29 | Connected [ label=Connected,style=filled,fillcolor=green,fontcolor=black ] | |
30 | ||
31 | node [fontcolor=lightblue] | |
32 | ||
33 | StartingSyncS [ label=StartingSyncS ] | |
34 | StartingSyncT [ label=StartingSyncT ] | |
35 | ||
36 | subgraph cluster_bitmap_exchange { | |
37 | node [fontcolor=red] | |
38 | fontcolor=red | |
39 | label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged" | |
40 | ||
41 | WFBitMapT [ label=WFBitMapT ] | |
42 | WFSyncUUID [ label=WFSyncUUID ] | |
43 | WFBitMapS [ label=WFBitMapS ] | |
44 | } | |
45 | ||
46 | node [fontcolor=blue] | |
47 | ||
48 | cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ] | |
49 | ||
50 | node [shape=box,fontcolor=black] | |
51 | ||
52 | // drbdadm [label="drbdadm connect"] | |
53 | // handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."] | |
54 | // comm_error [label="communication trouble"] | |
55 | ||
56 | // | |
57 | // edges | |
58 | // -------------------------------------- | |
59 | ||
60 | StandAlone -> Unconnected [ label="drbdadm connect" ] | |
61 | Unconnected -> StandAlone [ label="drbdadm disconnect\lor serious communication trouble" ] | |
62 | Unconnected -> WFConnection [ label="receiver thread is started" ] | |
63 | WFConnection -> WFReportParams [ headlabel="accept()\land/or \lconnect()\l" ] | |
64 | ||
65 | WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ] | |
66 | WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ] | |
67 | ||
68 | WFReportParams -> WFBitMapS | |
69 | WFReportParams -> WFBitMapT | |
70 | WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false] | |
71 | ||
72 | WFBitMapS -> cluster_resync:S | |
73 | WFSyncUUID -> cluster_resync:T | |
74 | ||
75 | edge [color=green] | |
76 | cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ] | |
77 | ||
78 | edge [color=red] | |
79 | WFReportParams -> CommTrouble | |
80 | Connected -> CommTrouble | |
81 | cluster_resync:any -> CommTrouble | |
82 | edge [color=black] | |
83 | CommTrouble -> Unconnected [label="receiver thread is stopped" ] | |
84 | ||
85 | } |