Skip to content

Implementation of Pastry - a scalable, distributed object location and routing substrate for wide-area peer-to-peer applications

License

Notifications You must be signed in to change notification settings

phoenix-254/pastry-protocol

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

28 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pastry-Protocol

The objective of this project is to implement Pastry protocol in F# using actor model provided by Akka.NET framework.

Team Members

  • Shaishav Shah
    UFID: 1136-3317
  • Akib Maredia
    UFID: 3885-6489

Instructions for running the code

  • Pastry

    • Unzip the zipped folder project3.zip
    • Go to directory using commnand cd project3/src
    • Run command dotnet fsi --langversion:preview Main.fsx <numberOfNodes> <numberOfRequests>
    • Both numberOfNodes and numberOfRequests should be integers else the program will exit with inavalid input
  • Pastry Bonus

    • Unzip the zipped folder project3Bonus.zip
    • Go to directory using command cd project3-bonus/src
    • Run the command dotnet fsi --langversion:preview Bonus.fsx <numberOfNodes> <numberOfRequests> <numberOfFailed>
    • numberOfNodes, numberOfRequests and numberOfFailureNodes should be integers else the program will exit with invalid input error.

What is working

  • Implemented the Pastry API which works for routing messages over peer to peer network according to the pastry paper.
  • The program takes in number of nodes and adds them to the network. Once the program starts, the number of nodes starts routing messages.
  • Every request is routed to the closest numerical value of the key that is to be requested eventually reaching the node with the desired key.
  • Both the failure model and basic model are working.
  • The average number of hops is printed at the end.

Largest network

  • The largest network that we were managed to run is having 4^9 = 262144 number of nodes and the average number of hops for it is 6.89 Alt

About

Implementation of Pastry - a scalable, distributed object location and routing substrate for wide-area peer-to-peer applications

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages