Overlay Weaver

An Overlay Construction Toolkit


Overlay Weaver is an overlay construction toolkit, which supports overlay algorithm designers in addition to application developers.

For application developers, the toolkit provides a common API for higher-level services such as distributed hash table (DHT) and multicast. Applications relying on the common API depend no specific transport protocol, database implementation and routing algorithm.

The toolkit provides multiple routing algorithms, Chord, Kademlia, Koorde, Pastry and Tapestry. These algorithms could be implemented only in hundreds lines of code because of routing layer decomposition. Routing layer under the higher-level services has been decomposed into multiple components, routing driver, routing algorithm and messaging service. The decomposition also facilitates implementation of a new algorithm. A newly implemented algorithm can be tested, evaluated and compared on emulator, which can host hundreds of thousands of virtual nodes. It enables large-scale emulation and fair comparison between algorithms.

Keywords: Overlay Network, Peer-to-Peer (P2P), Distributed Hash Table (DHT), Large-scale Emulation

News

October 26, 2009
Version 0.9.7 released.
  • Deadlock could occur in a very large-scale emulation (over 10^5 nodes) with collective forwarding (See notes about version 0.8.2). Fixed.
  • Directory type "PersistentMap" has not work from 0.9.1. Fixed.
  • Jetty was updated from 6.1.20 to 7.0.0.
September 20, 2009
Version 0.9.6 released.
  • Emulator supports event-driven emulation, not only real time emulation. It works suplying --eventdriven option to owemu command. Note that in event-driven mode commands run serially, not in parallel.
  • Subtle bugs in Emulator were fixed.
May 17, 2009
Version 0.9.4 released.
  • Web interface of DHT shell can show a routing path on a geographical map (Google Maps). Screenshots and demo page has screenshots. Nodes on PlanetLab shows such a map: http://pl.shudo.net:3998/
  • Fixed a bug in Pastry implementation. It occasionally prevents a node from working on a real network.
  • Berkeley DB Java Edition was updated from 3.3.75 to 3.3.82.
March 31, 2009
Demonstration videos provided on the "Screenshots, Video and Demo" page.
  • "Overlay Visualizer"
  • "DNS Emulation with over 500 nodes on PlanetLab"
January 6, 2008
DHT Access Tools 0.6 released.
  • Put command accepts multiple key-value pairs.
[More ...]