devAbnull / DistributedSystemsFileSystem

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Repository for Distributed Systems assignment Distributed File System

To run the file_system

  • python file_system_server

To run the Client

  • python filesystem_client

There are a number of commands that can be run on the client that will have suitable responses returned by the server

  • ls - list files and directories in the current directory

  • ls path - list files in specified directory

  • cd path - move to specified directory

  • up - move up one directory

  • read path - read the contents of a file

  • write file_name - writes file from current directory on local machine to the current directory on the remote server

  • mkdir path - make a directory at the following path

  • rmdir path - delete a directory and its contents

  • lock filename - locks the specified file

  • release filename - releases a specified file

  • exit - exit the client

Features the following

  • Distributed transparent file access
  • Directory Service
    • The current position of each client is stored in their object on the server
    • There are functions that resolve paths
  • Caching (in the client)
    • a list of recently viewed items is stored
    • a thread is charged with making sure items are discarded after a set period of time.
  • Locking
    • Items being written to or deleted require a lock
    • Locks are stored in a list on the server
    • A thread has the task of checking that all of the locks have an owner who is active on the server. This process runs every minute.
  • Logging
    • All events are logged on the server and can be viewed

About


Languages

Language:Python 99.7%Language:Shell 0.3%