Pyxida: An Open Source Network Coordinate Library and
Application

We have created an open source library and application
that incorporates the ideas from our research on network
coordinates. It is called Pyxida (pronounced
"peeks-ee-da" which means "compass" in Greek). In the short
term, the Pyxida project will provide the following pieces
of functionality: (a) estimate the latencies between hosts
in a distributed system with stable and accurate network
coordinates, (b) route to the host whose coordinate is
nearest to a point in the abstract coordinate space (useful
for distributed gaming applications), and (c) provide a
stand-alone application that constructs a network
coordinate system.

We are open to new developers; if you are interested,
please send us an email.

Pyxida can be used in three ways: as a "standalone" application,
as a library that you build into your distributed application,
and as a service you query. The standalone application and
the library are independent software artifacts; the service is
an instance of the library running on PlanetLab.

Our reasoning behind creating two artifacts instead of just
one is that some users want to incorporate network coordinates
directly into their application: they want to control the
network, when messages are sent, the wire format, and have
more control in general. These people will use the library.
Other people want a distinct network measurement substrate, a
tool that performs measurements of its own accord and simply
provides quick estimates of network latencies. These people
will use the standalone application. In addition, because the
standalone application is one of the simplest uses of the
library, its code provides library users with a starting point
to help them incorporate the library into their application.

The query tool can: (a) ask a node for its current coordinate,
(b) ask a node for another node's coordinate, (c) ask for the
estimated latency between two nodes. You can find specifics
on running the tool by running it with no arguments
(./query.pl).
Support for proxy coordinates will be added to the tool in the
future. In addition, we are creating a separate tool to
support the creation and deletion of proxy coordinates.

Videos

You can find a directory with
videos that
show the dynamic behaviour of network coordinates on PlanetLab.

Time-sliced Coordinates

You can find a directory with
coordinates
over time that
show which nodes were running and what their coordinates were, sliced
into ten-minute intervals. Data taken from PlanetLab.

Log Files

Logging levels for particular classes and subtrees can be set
in the config/log.config file.
E.g. edu.harvard.syrah.pyxida.level = DEBUG
Setting this to DEBUG will produce a lot of output. We
suggest INFO, which will produce a periodic summary.