Back to home page

OSCL-LXR

 
 

    


0001 // vim: set sw=2 sts=2 :
0002 digraph {
0003   rankdir=BT
0004   bgcolor=white
0005 
0006   node [shape=plaintext]
0007   node [fontcolor=black]
0008 
0009   StandAlone     [ style=filled,fillcolor=gray,label=StandAlone ]
0010 
0011   node [fontcolor=lightgray]
0012 
0013   Unconnected    [ label=Unconnected ]
0014 
0015   CommTrouble [ shape=record,
0016     label="{communication loss|{Timeout|BrokenPipe|NetworkFailure}}" ]
0017 
0018   node [fontcolor=gray]
0019 
0020   subgraph cluster_try_connect {
0021     label="try to connect, handshake"
0022     rank=max
0023     WFConnection   [ label=WFConnection ]
0024     WFReportParams [ label=WFReportParams ]
0025   }
0026 
0027   TearDown       [ label=TearDown ]
0028 
0029   Connected      [ label=Connected,style=filled,fillcolor=green,fontcolor=black ]
0030 
0031   node [fontcolor=lightblue]
0032 
0033   StartingSyncS  [ label=StartingSyncS ]
0034   StartingSyncT  [ label=StartingSyncT ]
0035 
0036   subgraph cluster_bitmap_exchange {
0037     node [fontcolor=red]
0038     fontcolor=red
0039     label="new application (WRITE?) requests blocked\lwhile bitmap is exchanged"
0040 
0041     WFBitMapT      [ label=WFBitMapT ]
0042     WFSyncUUID     [ label=WFSyncUUID ]
0043     WFBitMapS      [ label=WFBitMapS ]
0044   }
0045 
0046   node [fontcolor=blue]
0047 
0048   cluster_resync [ shape=record,label="{<any>resynchronisation process running\l'concurrent' application requests allowed|{{<T>PausedSyncT\nSyncTarget}|{<S>PausedSyncS\nSyncSource}}}" ]
0049 
0050   node [shape=box,fontcolor=black]
0051 
0052   // drbdadm [label="drbdadm connect"]
0053   // handshake [label="drbd_connect()\ndrbd_do_handshake\ndrbd_sync_handshake() etc."]
0054   // comm_error [label="communication trouble"]
0055 
0056   //
0057   // edges
0058   // --------------------------------------
0059 
0060   StandAlone -> Unconnected [ label="drbdadm connect" ]
0061   Unconnected -> StandAlone  [ label="drbdadm disconnect\lor serious communication trouble" ]
0062   Unconnected -> WFConnection [ label="receiver thread is started" ]
0063   WFConnection -> WFReportParams [ headlabel="accept()\land/or                        \lconnect()\l" ]
0064 
0065   WFReportParams -> StandAlone [ label="during handshake\lpeers do not agree\labout something essential" ]
0066   WFReportParams -> Connected [ label="data identical\lno sync needed",color=green,fontcolor=green ]
0067 
0068     WFReportParams -> WFBitMapS
0069     WFReportParams -> WFBitMapT
0070     WFBitMapT -> WFSyncUUID [minlen=0.1,constraint=false]
0071 
0072       WFBitMapS -> cluster_resync:S
0073       WFSyncUUID -> cluster_resync:T
0074 
0075   edge [color=green]
0076   cluster_resync:any -> Connected [ label="resnyc done",fontcolor=green ]
0077 
0078   edge [color=red]
0079   WFReportParams -> CommTrouble
0080   Connected -> CommTrouble
0081   cluster_resync:any -> CommTrouble
0082   edge [color=black]
0083   CommTrouble -> Unconnected [label="receiver thread is stopped" ]
0084 
0085 }