diff --git a/modules/dcache/README.md b/modules/dcache/README.md index 8653ae475e9..d4e5c6ad1fe 100644 --- a/modules/dcache/README.md +++ b/modules/dcache/README.md @@ -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 @@ -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 +```