preloader

Distributed File System

illustrations illustrations illustrations illustrations illustrations illustrations illustrations
Project snapshot

Distributed File System

Distributed File System Service with a naming and multiple storage servers

Date

Apr 15, 2020

Developed at
Carnegie Mellon University
Focus areas
Python Distributed System
Project link
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.