Distributed Resource Discovery on PlanetLab with SWORD


We describe SWORD, a decentralized service for resource discovery and service placement. SWORD finds the optimal embedding of a user's resource request (expressed as a topology of interconnected groups of nodes with per-node, inter-node, and inter-group constraints expressed as utility functions) in the topology of available nodes. SWORD consists of two parts: a multi-attribute distributed range query engine built on top of a distributed hashtable, and an "optimizer" whose work is parallelized on a per-query basis. In this paper we focus on SWORD's PlanetLab deployment and the lessons we have learned from that deployment. We find generally acceptable performance for our decentralized implementation, although we find that even a very small (two-node) ``centralized'' solution offers superior performance, in terms of median distributed query latency, for a reporting and querying node population the size of PlanetLab. Our deployment has led to qualitative observations on the usefulness of a DHT as a service building block, the benefits and dangers of automatic application restart, and the benefits of exporting a simple external interface that is semantically close to the service's internal representation of user queries.