Latency-tolerant distributed-filesystem
You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Ruakij 48a474287e Add basic CMake config 3 years ago
docs/diagrams/sequence Added documentation for some fuse-operations 3 years ago
src Add basic CMake config 3 years ago
CMakeLists.txt Add basic CMake config 3 years ago
LICENSE First commit 3 years ago
README.md Explained first idea 3 years ago

README.md

ltdfs - Latency-tolerant distributed-filesystem


Table of Contents


1. Description

This project is a network-filesystem based on FUSE which can be spanned across multiple locations, also with "higher" latency (up to 50-100ms). (although performance is expected to drop in this sync-mode)

This is for me a deeper dive into the C language and FUSE with the library libfuse.


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.
When the Ack comes back, the file is available to be written to locally.
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.
When the Ack comes back, the file will be written write-through.
Lock-Requests are not synced and expire after no data has flown for a period of time.
Writing remotely to a file without a lock-request is rejected.