Coder Social home page Coder Social logo

chorddfs's Introduction

ChordDFS

Distributed File System implementation using Chord algorithm

Requirements

  • Mininet 2.1.0
  • MiniNExT
  • Python 2 or 3

Instructions

  1. Run sudo python start.py --num_nodes where num_nodes is the number of nodes in your topology that you want to start.
  2. Start Client protocol on node 2 by running node# python Chord.py n2 \n2; ie, n2 python Client.py n2 \n2.

Note that currently n1 is the tracker node and n2 is set up to be the client node by default.

Examples

n1 python Chord.py n1 \n1 &					# n1 run server in background
n2 python Client.py n2 \n2					# n2 run client with stdin i/o
n3 python Client.py n3 \n3 script.txt 		# n3 run client with script, no i/o

chorddfs's People

Contributors

wizhacks avatar alexscarlatos avatar

Watchers

 avatar  avatar

chorddfs's Issues

Client program crashes mininet when client crashes or call exit

  1. start client program ie n1 python Client.py n1 \n1
  2. type exit into stdin console
  3. the client program should exit with this message on the screen: "bash: error reading input file: Resource temporarily available"
  4. n1 any_cmd
  5. mininet crashes with OSError: Broken Pipe

Flushing data error

When log files reach ~70 bytes, there seems to be an issue with flushing the buffer. Since this throws an error, the msg is not written to log either. We can try switching order or catching error?

<172.1.1.1>: msg type:RETURN_PREDECESSOR rcvd from 172.1.1.3: msg:{u'client_ip': None, u'target': None, u'msg_type': u'RETmininext> n4 ls
p': None, 'finger': None, 'key': None}
Traceback (most recent call last):
  File "Chord.py", line 453, in <module>
    ctrlMsgReceived()
  File "Chord.py", line 93, in ctrlMsgReceived
    myLogger.mnPrint("msg type:{0} rcvd from {1}: msg:{2}".format(msg_type, addr[0], msg))
  File "/home/mininet/ChordDFS/ReadLog.py", line 23, in mnPrint
    sys.stdout.flush() # need to flush output, else never show up
IOError: [Errno 4] Interrupted system call

Report Errors to Client

If a file doesn't exist on the network for a get request, we should return an error to the Client. Same for other issues.

topo.py

tracker, client, chord nodes, fabric switch

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.