This project is a distributed file system which allows a single writer and concurrent readers. I used the upload-download file system model – instead of directly forwarding client requests to execute system calls on the virtual file systems directly, files are cached on the client side to perform all operations on the client side locally. Multiple clients can download the file and read the file at the same time, but only one client has access to write to the file. The locally cached copy on the client side will be refreshed when the freshness condition on the cache expires.

This attachment documents the design and justifies key implementation decisions I made along the way.

Built With

Share this project:

Updates