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 tens of thousands of virtual nodes. It enables large-scale emulation and fair comparison between algorithms.

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

News

May 6, 2008
Version 0.8.4 released.
  • In iterative routing, an order of processes was changed. Last hop adjustment in Chord and Koorde for multiple routing requests is executed concurrently.
  • Messaging service for Emulator can add communication latency to each message delivery.
April 28, 2008
Version 0.8.2 released.
  • Collective routing was implemented.
  • Put, get and remove commands of a DHT shell accept multiple key-value pairs once.
  • Bugs in recursive routing (driver) were fixed.
  • Routing success rate in Pastry was improved. When the Pastry implementation merges a node into a routing table and leaf sets, it merges the node into other tables. A loop in routing got fewer.
  • Berkeley DB Java Edition was updated from 3.2.74 to 3.2.76.
January 6, 2008
DHT Access Tools 0.6 released.
  • Put command accepts multiple key-value pairs.
December 1, 2007
Version 0.7.7 released.
  • The number of threads per node was reduced. A node no longer requires a dedicated thread. This change increases the number of nodes which can be hosted on an Emulator.
[More ...]