Chimera: A Library
for Structured Peer-to-peer Application Development
Overview
Chimera is a C library that implements
a structured, peer-to-peer system. This work is an attempt
to provide a library that allows easy
development of applications on top of a peer-to-peer routing infrastructure.
The goals are twofold. First, we wanted to
make a fast, lightweight, C implantation of
a Tapestry-like system includes some of the
optimizations provided by other systems. Second, we
wanted to develop a system designed to
export an API in line with existing work that describes how
to effectively interface with such an
overlay
network.
The library implements a routing infrastructure much like
those provided by Tapestry and Pastry. The
system contains both a leaf set of neighbor nodes, which provides
fault tolerance and a probabilistic
invariant of constant routing progress. It also provides a
PRR style routing table to improve routing
time to a logarithmic factor of network size. Using this
library, developers can build an application
that creates an overlay network with a limited number
of library calls. They can implement their
own application by providing a series of up-calls that
are called by the library in response to
certain overlay network events.
The library we developed will serve as both a usable
interface and a starting point for further research.
This library implements a relatively complete version of a structured
peer-to-peer system we described. It
includes some of the current work in locality optimization and
soft-state operations. It also provides an
interface that can be used as is to develop applications, but that will
allow for the infrastructure to be changed
with little impact on existing application code.
Rama Alebouyeh
Last updated 02/16/06