(Bamboo graphic)
Documentation License
Contact Us

The Bamboo Distributed Hash Table
A Robust, Open-Source DHT

A distributed hash table, or DHT, is a building block for peer-to-peer applications. At the most basic level, it allows a group of distributed hosts to collectively manage a mapping from keys to data values, without any fixed hierarchy, and with very little human assistance. This building block can then be used to ease the implementation of a diverse variety of peer-to-peer applications such as file sharing services, DNS replacements, web caches, etc.

DHTs were first introduced to the research community in 2001, with the near-simultaneous introduction of four different architectures: CAN, Chord, Pastry, and Tapestry. Since that time, there have been an amazing number of new DHT architectures proposed, but very few publicly-released, robust implementations.

Bamboo is a either based on Pastry, a re-engineering of the Pastry protocols, or an entirely new DHT, depending on how you want to look at it. The term geometry is used to refer to the pattern of neighbor links in a DHT, independent of the routing algorithms or neighbor management algorithms used. Bamboo uses the Pastry geometry. It does not, however, use the same joining or neighbor management algorithms. Compared to Pastry, the algorithms are more incremental, a difference that allows Bamboo to better withstand large membership changes in the DHT as well as continuous churn in membership, especially in bandwidth-limited environments. For more information, see our USENIX paper in the Publications section of this web site.

On this web site you can find the code for Bamboo and documentation on how to use it. Bamboo is written in Java, and it has proven quite easy to incorporate into several projects at UC Berkeley that use DHTs, including the OceanStore and PIER projects. If you have a project that needs a DHT, give Bamboo a try, and please feel free to contact us if you have any questions, comments, etc.

New: If you're interested in using Bamboo, but don't want to run the DHT yourself, check out our new OpenDHT project. We're running Bamboo on Planetlab 24/7 and allowing anyone to put/get key-value pairs into it/out of it using XML RPC or Sun RPC. It's a lot easier than running the DHT yourself!

Last modified 2005/03/22 01:01:51.