Skip to content

A distributed file system in go. Support failure detection, simple distributed file query. User can write any map-reduce executable file in any language and run in this system. The executable file should take in stdinput. The result will be stdoutput.

Pupilsch/Distributed-File-System

Repository files navigation

Introduction

Implementation of a distributed file system. We use UDP to detect failures and TCP to execute the file commands.

Contributor

Chunhao Shen, Siyu Ye, Xiya Fan, Hange Liu

Installation

Build and deploy with

**Make all**

Warning

Wirte your own makefile to deploy. The original content in makefile is only supported during the course.

Usage

To run on local host:

** go run main.go debug **

To run across machines:

** go run main.go **

Commands

To deploy a intro node

** join intro**

To deploy a ordinary node

** join [port_number]**

To leave the system

** leave **

To get node info

** id **

To list members of the system

** members **

To put a file

** put [local_filepath] [filename] **

To get a file

** get [filename] [local_filepath] **

To delete a file

** delete [filename] **

To get a list of servers with a file

** ls [filename] **

To get a list of files on the server

** store  **

To run maple(map) command

** maple <exec_filename> <number_of_maple> <sdfs_intermediate_file_prefix> <input_filename> **

To run juice(reduce) command To get a list of files on the server

** juice <exec_filename> <number_of_juice> <sdfs_intermediate_file_prefix> <output_filename> <delete_intermediate_file_or_not> <method_of_dividing_task(hash or not)> **

See example map_reduce command in "command_backup". See example executable file and source code file in "/mj_exe"

About

A distributed file system in go. Support failure detection, simple distributed file query. User can write any map-reduce executable file in any language and run in this system. The executable file should take in stdinput. The result will be stdoutput.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages