preloader

Distributed File System

illustrations illustrations illustrations illustrations illustrations illustrations illustrations
Distributed File System

Date

Apr 15, 2020

Developed at

Carnegie Mellon University

Category

Python, distributed system

Project Link (if Public)

Private GitHub repository for academic integrity reasons

Project Requirements

  • Design a simple and scalable distributed file system service.

Project Details

  • Implemented a simple user-space distributed file system service.
  • Files were hosted remotely on one or more storage servers and used the underlying FS for simplicity.
  • Separately, a single naming server was used to index the files, indicating which one is stored where. When a client wishes to access a file, it first contacts the naming server to obtain the IP address and client port of the storage server hosting it. After that, it communicates directly with the storage server to complete the operation.
  • The file system supported file reading, writing, creation, deletion, and size queries. It also supported certain directory operations - listing, creation and deletion.
  • Possible to lock files for exclusive access, and commonly accessed files were automatically replicated on multiple storage servers.