- Notifications
You must be signed in to change notification settings - Fork2
Scalable Resilent Overlay Networks
License
yang/sron
Folders and files
Name | Name | Last commit message | Last commit date | |
---|---|---|---|---|
Repository files navigation
The SRON project is a collaboration between researchers from MIT and CMU tomakeResilient Overlay Networks scale up to hundreds of nodes by applying anovel distributed algorithm for efficient (near-optimal) one-hop link-staterouting in such full-mesh networks as RONs. Prior techniques for this settingscale poorly, as each node incurs quadratic communication overhead to broadcastits link state to all other nodes. In contrast, in our algorithm each nodeexchanges routing state with only a small subset of overlay nodes determined byusing a quorum system. Using a two-round protocol, each node can find anoptimal one-hop path to any other node using only n-root-n per-nodecommunication. Our algorithm can also be used to find the optimalshortest-path of arbitrary length using n-root-n-log-n per-node communication.The algorithm is designed to be resilient to both node and link failures.
For more details, please refer to our paper, "Scaling all-pairs overlay routingto the thousands," which appears inCoNext 2009. This codebase is thepublished system that was developed to prototype and experimentally evaluatethe algorithm onPlanetLab. It also contains simulation-driving code foroperating the system in a non-distributed setting.
The only requirement for this system is Java 6.
To build, runmake
. The main class isRonTest
.make jar
generates aclass jar for easy deployment.
To run the system in a non-distributed simulation mode, refer to therunsim.bash
andsim.rb
scripts.
The tool to regenerate the message type source code isobject-codegen
and isfound here:
https://assorted.svn.sourceforge.net/svnroot/assorted/object-codegen/trunk/src
Instead of adopting a serialization framework such asProtocol Buffers, wechose to exercise greater control over a simpler serialization format.
More detailed documentation regarding system usage (invocation parameters) andsimulation tooling are forthcoming, as is API documentation.
Eventually we will also release our PlanetLab-based experiment orchestrationcode to facilitate experiment re-creation.
The reactor framework has been refactored out of this codebase into a separateproject, but this change has not yet been reflected in the current code.
- David Andersen (CMU)
- David Karger (MIT)
- Amar Phanishayee (CMU)
- David Sontag (MIT)
- Yang Zhang (MIT)