Scalable Wide-Area Resource Discovery David Oppenheimer et al. Berkeley TR, Summer 2004 [writing this in Munich airport, as guards walk by with uzis or similar] [I'm drinking free coffee in the Lufthansa terminal. Next time when flying to a specific city in Europe, I suggest (to self, flying to JFK instead of some random city). Or, taking the train from somewhere nearby, not necessarily the nearest airport] SWORD performs distributed single and multi-attribute range queries, allowing users to find a selection of nodes that fit a set of characteristics. Here's how it does it: - User doing a lookup can contact any SWORD node to perform a lookup. - Users specify a utility function for a variety of characteristics (or keys). - The root of the query (as I'm calling it) picks one single-node key (at random for now), and probes the DHT nodes that store info about nodes that fit that attribute. - SWORD sends the entire query to these nodes. - They send back the list of nodes that could possibly fulfill the query; all this is still done on the single-node attributes - Once a list of nodes is back at the root, the root sees which nodes fulfill multi-node attributes. Instead of doing pairwise comparisons between the potential set of nodes, it finds "reference" nodes for each of these and sees which reference node fulfills the query. "Reference" nodes are supposed to be nearby.