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.ccandafs_server.ccinClose()andCloseStream()operation. - Stale Cache: This is in
afs_client.ccinOpen()andOpenStream()operations.
- Client-side FUSE-based file system is crash consistent: We are using
.tempand.consistentfiles for crash consistency. More details inreport.pdfandslides.pdf. - Server-side persistence: Server stores files using
.tempand atomically rename operation. It is inClose()andCloseStream()functions. More details inreport.pdfandslides.pdf.
- Design for client crash: Client contains
Garbage Collector and Crash Recovery Systemthat 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