Added documentation for some fuse-operations
parent
5ae0474644
commit
af45216507
@ -0,0 +1,40 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
title "Allocate space for opened file"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
boundary SiteB
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
Client -> SiteA ++ : fallocate
|
||||
SiteA -> SiteA : Check owner
|
||||
alt SiteA is owner
|
||||
|
||||
SiteA -> SiteA : Allocate space
|
||||
alt No space left
|
||||
|
||||
SiteA --> Client : No space left\non device
|
||||
|
||||
end
|
||||
|
||||
SiteA ->> Others : Section changed
|
||||
|
||||
else SiteB is owner
|
||||
|
||||
SiteA -> SiteB ++ : Allocate space
|
||||
|
||||
SiteB -> SiteB : Allocate space
|
||||
SiteB ->> Others : Section changed
|
||||
SiteB --> SiteA -- : Done
|
||||
|
||||
SiteA ->> SiteA : Update cache
|
||||
|
||||
end
|
||||
SiteA --> Client -- : Done
|
||||
|
||||
@enduml
|
@ -0,0 +1,22 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
title "Initialize FS"
|
||||
|
||||
control SiteA
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
SiteA ++
|
||||
SiteA -> Others ++ : TCP-Connect
|
||||
|
||||
SiteA -> Others : Get Indexes
|
||||
Others --> SiteA : Indexes
|
||||
note right
|
||||
Indexes without
|
||||
entries from SiteA
|
||||
end note
|
||||
|
||||
@enduml
|
@ -0,0 +1,19 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
title "Open Read"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
|
||||
|
||||
Client -> SiteA ++ : Open [r]
|
||||
|
||||
SiteA -> SiteA : Check availablility
|
||||
|
||||
SiteA --> Client -- : File opened
|
||||
|
||||
@enduml
|
@ -0,0 +1,50 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
header "Local\nNot Owner"
|
||||
title "Open Read&Write"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
boundary SiteB
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
|
||||
Client -> SiteA ++ : Open [rw]
|
||||
|
||||
SiteA -> SiteA : Check owner
|
||||
alt SiteB is owner
|
||||
|
||||
SiteA -> SiteA : Check availablility
|
||||
alt File is locally available
|
||||
|
||||
SiteA -> SiteB ++ : Transfer ownership
|
||||
|
||||
SiteB -> SiteB : Lock file
|
||||
alt Already locked
|
||||
|
||||
SiteB --> SiteA : File is locked
|
||||
SiteA --> Client : File is locked
|
||||
|
||||
else Locked
|
||||
|
||||
SiteB ->> Others : File locked &\nOwnership changed
|
||||
note left
|
||||
Distribute Info
|
||||
about Lock & Ownership
|
||||
end note
|
||||
|
||||
SiteB --> SiteA -- : Ready
|
||||
|
||||
SiteA --> Client -- : File opened
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@enduml
|
@ -0,0 +1,44 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
header "Local\nOwner"
|
||||
title "Open Read&Write"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
|
||||
Client -> SiteA ++ : Open [rw]
|
||||
|
||||
SiteA -> SiteA : Check owner
|
||||
alt Client is owner
|
||||
|
||||
SiteA -> SiteA : Lock file
|
||||
alt Already locked
|
||||
|
||||
SiteA --> Client : File is locked
|
||||
|
||||
else Locked
|
||||
|
||||
SiteA ->> Others : File locked
|
||||
note left
|
||||
Distribute Info
|
||||
about Lock
|
||||
end note
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
SiteA -> SiteA : Check availablility
|
||||
alt Locally available
|
||||
|
||||
SiteA --> Client -- : File opened
|
||||
|
||||
end
|
||||
|
||||
@enduml
|
@ -0,0 +1,54 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
header "Not Local\nNot Owner"
|
||||
title "Open Read&Write"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
boundary SiteB
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
|
||||
Client -> SiteA ++ : Open [rw]
|
||||
|
||||
SiteA -> SiteA : Check owner
|
||||
alt SiteB is owner
|
||||
|
||||
SiteA -> SiteA : Check availablility
|
||||
alt File is not locally available
|
||||
|
||||
SiteA -> SiteB ++ : Lock file
|
||||
|
||||
SiteB -> SiteB : Lock file
|
||||
alt Already locked
|
||||
|
||||
SiteB --> SiteA : File is locked
|
||||
SiteA --> Client : File is locked
|
||||
|
||||
else Locked
|
||||
|
||||
SiteB ->> Others : File locked
|
||||
note left
|
||||
Distribute Info
|
||||
about Lock
|
||||
end note
|
||||
|
||||
SiteB --> SiteA -- : Ready
|
||||
SiteA --> Client -- : File opened
|
||||
|
||||
note right
|
||||
When reading or writing,
|
||||
data will now be streamed.
|
||||
> See read.puml for more Info
|
||||
end note
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
@enduml
|
@ -0,0 +1,33 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
title "Read from opened file"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
boundary SiteB
|
||||
|
||||
|
||||
Client -> SiteA ++ : Read Section
|
||||
|
||||
SiteA -> SiteA : Check availablility
|
||||
alt Not locally available
|
||||
|
||||
SiteA -> SiteB ++ : Read Section
|
||||
SiteB --> SiteA -- : Section-Data
|
||||
note right
|
||||
Section-Data is
|
||||
being streamed
|
||||
end note
|
||||
|
||||
SiteA ->> SiteA ++ : Save in cache
|
||||
SiteA --
|
||||
|
||||
end
|
||||
|
||||
SiteA --> Client -- : Section-Data
|
||||
|
||||
@enduml
|
@ -0,0 +1,39 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
title "Write to opened file"
|
||||
|
||||
participant Client
|
||||
control SiteA
|
||||
boundary SiteB
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
Client -> SiteA ++ : Section-Data
|
||||
SiteA -> SiteA : Check owner
|
||||
alt SiteA is owner
|
||||
|
||||
SiteA -> SiteA ++ : Save Data
|
||||
SiteA --> SiteA -- : Done
|
||||
|
||||
SiteA ->> Others : Section changed
|
||||
|
||||
else SiteB is owner
|
||||
|
||||
SiteA -> SiteA ++ : Save in cache
|
||||
note right : Write-Back Cache
|
||||
|
||||
SiteA ->> SiteB ++ : Write Section-Data
|
||||
|
||||
SiteB -> SiteB ++ : Save Data
|
||||
SiteB--
|
||||
SiteB ->> Others -- : Section changed
|
||||
|
||||
SiteA --> SiteA -- : Done
|
||||
|
||||
end
|
||||
SiteA --> Client -- : Done
|
||||
|
||||
@enduml
|
@ -0,0 +1,25 @@
|
||||
@startuml
|
||||
autonumber
|
||||
hide footbox
|
||||
|
||||
footer "LTDFS | Ruakij"
|
||||
|
||||
header "Every few seconds"
|
||||
title "Heartbeat"
|
||||
|
||||
control SiteA
|
||||
boundary "Other Sites" as Others
|
||||
|
||||
SiteA ++
|
||||
SiteA -> SiteA : Get latest changes\nin local cache
|
||||
note right
|
||||
Changes since
|
||||
last heartbeat
|
||||
end note
|
||||
|
||||
SiteA ->> Others ++ : Distribute changed\nlocal-cache-indexes
|
||||
SiteA--
|
||||
|
||||
Others -> Others : Apply changes to\navailability-index
|
||||
|
||||
@enduml
|
Loading…
Reference in New Issue