Implementation Issues
Regardless of whether NCs are accessed through a service or a library, they must be designed to
handle practical networking problems, such as measurement variation, data loss, and node failures.
The focus of our work to date has been on measurement variation: creating an accurate and stable
coordinate system using real world latency samples. In this section, we explain our solutions to
handle non-ideal latency samples, which have a significant negative impact when left unfiltered. We
also describe how measurement overhead can be controlled by tuning neighbor sets. As an overview, we
found that:
- Latency samples for a particular link have a high variance. These raw samples can cause wild,
temporary perturbations, which cascade across the coordinate space. We found that a statistical
filter suppressed these anomalies and greatly improved accuracy and stability.
- Nodes' relative latencies change over time. We refine a filter to remove bad measurements
while preserving changes in the underlying network. This sustains accuracy over time.
- Applications prefer stable coordinates. A distinction between system-level NCs, which
are raw Vivaldi coordinates, and application-level NCs, which summarize a recent window of
coordinate updates, help suppress unnecessary application activity. A new coordinate is only
externally visible to an application after a significant change has occurred.
Subsections
Jonathan Ledlie
2005-10-18