Skip to content

Commit

Permalink
docs: diagram on successful write workflow
Browse files Browse the repository at this point in the history
Motivation: Got curious about what the flow of a client writing to a file would look like.

Modification: Adding two mermaid diagrams that show the flow of a successful write for supported protocols, specifically steps 14 and 15.

Result: Help someone understand some concepts better.

Acked-by: Tigran Mkrtchyan
Target: master
Require-book: no
Require-notes: no
  • Loading branch information
khys95 committed Nov 20, 2024
1 parent 30829c9 commit 4b922a1
Showing 1 changed file with 70 additions and 0 deletions.
70 changes: 70 additions & 0 deletions modules/dcache/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,42 @@ sequenceDiagram
Door-->>Client: OK
```

## Door workflow on successful write, close through door (NFS)

```mermaid
sequenceDiagram
autonumber
participant Client
participant Door
participant poolA
participant PoolManager
participant PnfsManager
participant Billing
Client ->> Door: PUT
Door->>PnfsManager: PnfsGetFileAttributes (path|pnfsid)
PnfsManager -->> Door: storage info, attrs
Door ->> PoolManager: PoolMgrSelectWritePoolMsg(pnfsid, storage info)
PoolManager-->>Door: poolA
Door->>poolA: Start Mover (pnfsid, protocol, storage info)
poolA -->>Door: mover id
poolA-->>Door: redirect
Door -->> Client: redirect
loop Application IO
Client->>poolA: PUT
poolA-->>Client: 'writebytes'
end
Client->>Door: CLOSE
Door->>poolA: Kill Mover(id)
poolA->>PnfsManager: PnfsSetFileAttributes
PnfsManager-->>poolA: OK
poolA ->> Billing: MoverInfoMessage
poolA-->>Door: DoorTransferFinishedMessage(status)
Door->>Billing: DoorRequestInfoMessage
Door-->>Client: OK
```


## Door workflow on successful read, close through pool (dcap, xroot, http)

```mermaid
Expand Down Expand Up @@ -67,3 +103,37 @@ sequenceDiagram
Door-->>Client: OK
end
```

## Door workflow on successful write, close through door (dcap, xroot, http)
```mermaid
sequenceDiagram
autonumber
participant Client
participant Door
participant poolA
participant PoolManager
participant PnfsManager
participant Billing
Client ->> Door: PUT
Door->>PnfsManager: PnfsCreateEntryMessage (path|pnfsid)
PnfsManager -->> Door: storage info, attrs
Door ->> PoolManager: PoolMgrSelectWritePoolMsg(pnfsid, storage info)
PoolManager-->>Door: poolA
Door->>poolA: Start Mover (pnfsid, protocol, storage info)
poolA -->>Door: mover id
poolA-->>Door: redirect
Door -->> Client: redirect
loop Application IO
Client->>poolA: PUT
poolA-->>Client: 'writebytes'
end
Client->>Door: CLOSE
Door->>poolA: Kill Mover(id)
poolA->>PnfsManager: PnfsSetFileAttributes
PnfsManager-->>poolA: OK
poolA ->> Billing: MoverInfoMessage
poolA-->>Door: DoorTransferFinishedMessage(status)
Door->>Billing: DoorRequestInfoMessage
Door-->>Client: OK
```

0 comments on commit 4b922a1

Please sign in to comment.