1. Homepage
  2. Programming
  3. COP5615 Distributed Operating System Principles - Programming Assignment #2 Chord: P2P System and Simulation

COP5615 Distributed Operating System Principles - Programming Assignment #2 Chord: P2P System and Simulation

Engage in a Conversation
UFLCOP5615Distributed Operating System PrinciplesChordP2PF#

COP5615- Distributed Operating System Principles Fall 2023 CourseNana.COM

Programming Assignment #2 Chord: P2P System and Simulation CourseNana.COM

Deadline: Nov 2, 2023 CourseNana.COM

LATE submission will be accepted for grading! CourseNana.COM

How to submit: Please complete the group submission via CANVAS system. CourseNana.COM

Introduction CourseNana.COM

The goal of this project is to implement the Chord protocol using F#. CourseNana.COM

The specification of the Chord protocol can be found in the paper “Chord: A Scalable Peer-to-peer Lookup Service for Internet Applications” by Stoica, Morris, et.al. https://pdos.csail.mit.edu/papers/ton:chord/paper-ton.pdf. The paper above, in section 2.3 contains a specification of the Chord API and of the API to be implemented by the application. CourseNana.COM

You can also refer to the Wikipedia page: https://en.wikipedia.org/wiki/Chord(peer-to-peer). Requirements
You are required to implement functions to: CourseNana.COM

  •   Create the network ring (create() function mentioned in the paper) with numNodes number of nodes in it. numNodes will be passed as command line argument to the program. Each node in the network must be associated with an integer key. Also create finger tables for each node. CourseNana.COM

  •   Add nodes to the ring dynamically (join() function from the paper). Your code should update the finger tables with information about the new nodes that have joined the network. CourseNana.COM

  •   Function for scalable key lookup as described in the Chord paper (Section 4). CourseNana.COM

  •   A simulator for key lookups. In the simulator, each node must perform numRequests number of CourseNana.COM

    requests. numRequests will be passed as a command line argument to the program. Count the number of hops required for each request made by every node, sum it up and find the average number of hops as: CourseNana.COM

    Averagenumberofhops = Sumofnumberofno.ofhopsforallrequestsforallnodes 𝑛𝑢𝑚𝑅𝑒𝑞𝑢𝑒𝑠𝑡𝑠 ∗ 𝑛𝑢𝑚𝑁𝑜𝑑𝑒𝑠 CourseNana.COM

    Input CourseNana.COM

    The input provided (as command line arguments to Program.fs) will be of the form: CourseNana.COM

    dotnet run numNodes numRequests
    

Where numNodes is the number of peers to be created in the peer-to-peer system and numRequests is the number of requests each peer has to make. When all peers have performed those many requests, the program can exit. Each peer should send a request/second. CourseNana.COM

Output CourseNana.COM

Print the average number of hops (node connections) that are made to deliver a message. CourseNana.COM

Actor model CourseNana.COM

In this project, you have to use exclusively the AKKA actor framework (projects that do not use multiple actors or use any other form of parallelism will receive no credit). You should have one actor for each of the peers modeled. CourseNana.COM

Report CourseNana.COM

In the report, include the following: CourseNana.COM

  1. The project folder should be called Chord. It should contain a Program.fs file which would be the entry point of your program and some other configuration files which are included when the project is created. CourseNana.COM

  2. Do not include any executable files in your submission. CourseNana.COM

  3. Include the report in .pdf or .txt format. Name it report.pdf/txt. CourseNana.COM

  4. Zip all your files into a packet: Team_ID.zip CourseNana.COM

  5. Upload the zip packet as attachment in CANVAS before deadline. CourseNana.COM

    Your project structure should be like this: CourseNana.COM

CourseNana.COM

Grading Criteria CourseNana.COM

Correct Implementation / Outputs CourseNana.COM

Readability / Comments / Code structure CourseNana.COM

Get in Touch with Our Experts

WeChat (微信) WeChat (微信)
Whatsapp WhatsApp
UFL代写,COP5615代写,Distributed Operating System Principles代写,Chord代写,P2P代写,F#代写,UFL代编,COP5615代编,Distributed Operating System Principles代编,Chord代编,P2P代编,F#代编,UFL代考,COP5615代考,Distributed Operating System Principles代考,Chord代考,P2P代考,F#代考,UFLhelp,COP5615help,Distributed Operating System Principleshelp,Chordhelp,P2Phelp,F#help,UFL作业代写,COP5615作业代写,Distributed Operating System Principles作业代写,Chord作业代写,P2P作业代写,F#作业代写,UFL编程代写,COP5615编程代写,Distributed Operating System Principles编程代写,Chord编程代写,P2P编程代写,F#编程代写,UFLprogramming help,COP5615programming help,Distributed Operating System Principlesprogramming help,Chordprogramming help,P2Pprogramming help,F#programming help,UFLassignment help,COP5615assignment help,Distributed Operating System Principlesassignment help,Chordassignment help,P2Passignment help,F#assignment help,UFLsolution,COP5615solution,Distributed Operating System Principlessolution,Chordsolution,P2Psolution,F#solution,