Vivaldi Coordinate Service Justin Ma, Patrick Verkaik, Michael Vrable Department of Computer Science And Engineering UCSD CSE222A, Winter 2005
Network Coordinates ● Knowledge of network latencies useful ● All-pairs measurement overly expensive ● Key idea: embed nodes into a metric space, where distance corresponds to RTT 0, 0 0, 5 13, 5
Vivaldi Algorithm ● Decentralized algorithm for computing network coordinates AB My coordinates: (5, 0) My error: 20% Current Coordinates: (10, 0) Current Error: 50% RTT: 10 ms (1): Request (2): Reply (3): Update Position (12, 0)
Vivaldi Algorithm (cont.) ● Each node updates position incrementally with each communication ● Modeled as a spring system ● Movement governed by error estimate of each node Dabek, et al., SIGCOMM '04
Vivaldi Evaluation Shortcomings ● Presented evaluation uses static latency measurements ● Measurement of response to network changes limited ● We need to evaluate this algorithm in a real setting
Outline ● Vivaldi Coordinate Service ● Simulation Results ● VCS Deployment ● Demonstration
VCS Overview ● Service for querying network coordinates of hosts ● Platform for verifying effectiveness of Vivaldi Where is Y? Landmarks
Landmark Protocol ● Role of landmarks is to service queries ● Maintains accurate coordinates among landmarks
Query Protocol ● Querying non-landmark node Calc Y's coordinates Y
Implementation Goals ● How do we make the landmark and query protocols lightweight and accurate? ● Candidate landmark protocol: All landmarks ping each other ● Candidate query protocol: All landmarks ping target ● We conduct simulations to investigate other candidate protocols
Simulation Dataset ● PlanetLab all-pair ping ● January, 2005 ● 15 minute averages ● 166 nodes
Simulation: Landmark Protocol Evaluate two communication patterns: ● All-pairs – Every 15 minutes, a landmark pings all other landmarks ● Random fraction – Every 15 minutes, a landmark: ● Selects random 10% of other landmarks ● Pings the selected landmarks
Simulation: All-Pair Landmark Protocol Highly variable, but after 2.5 days (t=240): – 50% of measurements mostly below 7% error – 75% of measurements mostly below 20% error
Simulation: All-Pair Landmark Protocol ● 50% node pairs have < 9% average error ● 80% of node pairs have < 30% average error
Simulation: All-Pair Landmark Protocol ● Error decreases with time
Sim: Random-10% Landmark Protocol ● After a half day: random-10% similar to all- pair
Simulation: Query Protocol Calc Y's coordinates Y
Simulation: Query Protocol The DOS approach 3 least-error Uses landmarks with lowest Vivaldi error Uses all landmarks
Simulation: Query Protocol Not bad: ● Few probes needed ● Few probers needed
Simulation: Query Protocol Can do better: ● Two least-error nodes were close together ● => Pick better probers
Live Deployment ● PlanetLab (roughly 15 nodes are landmarks) ● Landmarks implemented in Python ● Landmark software deployed using PLuSH
Live Deployment: Landmark Protocol Current deployment uses: ● Changing set of 6 nodes (40% of total) ● Half nearby nodes ● Half random (distant)
Live Deployment: Query Protocol Current deployment uses: ● 3 least-error nodes
Future Work ● Investigate adaptive landmark protocols ● More optimal query protocol ● Improve Vivaldi Coordinate Service Implementation ● Robustness ● Security ● Caching ● Peer management ● Evaluate filtering of raw ping data
Conclusion ● Simulations show the potential of Vivaldi and a lightweight coordinate service ● Constructed Vivaldi Coordinate Service using guidance from simulations
Demonstration 3 Interfaces: ● Text-based UDP query interface (netcat) ● PlanetLab Sensor ● Animation Webpage