Distributed AFS built on top of FUSE
The source code is in src
. It contains its own README.md
explaining how to run the project.
The performance scripts are in pythonfiles
. It contains its own README.md
explaining how to run the performances.
This part hosts the posix compliant fuse apis: https://github.com/hemal7735/CS739-p2/blob/main/src/fuse-client.cc#L333-L350
- Protocol Primitive : Protos define the interface for client-server communications
- Update Visibility: This is in both
afs_client.cc
andafs_server.cc
inClose()
andCloseStream()
operation. - Stale Cache: This is in
afs_client.cc
inOpen()
andOpenStream()
operations.
- Client-side FUSE-based file system is crash consistent: We are using
.temp
and.consistent
files for crash consistency. More details inreport.pdf
andslides.pdf
. - Server-side persistence: Server stores files using
.temp
and atomically rename operation. It is inClose()
andCloseStream()
functions. More details inreport.pdf
andslides.pdf
.
- Design for client crash: Client contains
Garbage Collector and Crash Recovery System
that gets activated during startup. Code: https://github.com/hemal7735/CS739-p2/blob/main/src/afs_client.cc#L100-L139 - Design for server crash: similar to client crash - https://github.com/hemal7735/CS739-p2/blob/main/src/afs_server.cc#L548-L565
Graphs are given in slides.pdf
and report.pdf
Crash recovery protocol is given in both slides.pdf
and report.pdf
. Crash demos are hosted here: https://uwprod-my.sharepoint.com/:f:/g/personal/hrpatel5_wisc_edu/EtFDuGALu4JEqsQmdBvuflIBPq7L-0CY5VDWCFwVFMSa7g?e=55K7tJ
- Please see
slides.pdf
- Please see
report.pdf
- done