|
|
|
@ -7,6 +7,7 @@ Table of Contents
|
|
|
|
|
=================
|
|
|
|
|
<!-- TOC -->
|
|
|
|
|
- [1. Description](#1-description)
|
|
|
|
|
- [1.1. The Idea](#11-the-idea)
|
|
|
|
|
<!-- /TOC -->
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
@ -19,3 +20,36 @@ This is for me a deeper dive into the C language and FUSE with the library [libf
|
|
|
|
|
|
|
|
|
|
<br>
|
|
|
|
|
|
|
|
|
|
## 1.1. The Idea
|
|
|
|
|
|
|
|
|
|
1\. The idea is to connect multiple sites in a mesh-network-topology.
|
|
|
|
|
|
|
|
|
|
2\. The filesystem makes all files from all sites available at each site in a combined view.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
/mnt/ltdfs/
|
|
|
|
|
\ siteA-Readme.md
|
|
|
|
|
\ siteB-Readme.md
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
3\. Each file has certain metadata to identify location and owner.
|
|
|
|
|
|
|
|
|
|
```
|
|
|
|
|
siteA-Readme.md
|
|
|
|
|
---
|
|
|
|
|
Availability:
|
|
|
|
|
- SiteA
|
|
|
|
|
- SiteB
|
|
|
|
|
Owner: SiteA
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
4\. When reading, first the local cache is checked and then one or even multiple sites are chosen to load the file.
|
|
|
|
|
|
|
|
|
|
5\. When writing, if the file is available locally, an ownership-transfer is requested with the owner-site.<br>
|
|
|
|
|
When the Ack comes back, the file is available to be written to **locally**.<br>
|
|
|
|
|
Ownership-transfers are synced immediately through the network from the owner-site.
|
|
|
|
|
|
|
|
|
|
If the file was not available locally, a Write-lock-request is send to the owner-site.<br>
|
|
|
|
|
When the Ack comes back, the file will be written **write-through**.<br>
|
|
|
|
|
Lock-Requests are not synced and expire after no data has flown for a period of time.<br>
|
|
|
|
|
Writing remotely to a file without a lock-request is rejected.
|
|
|
|
|