Asynchronous resource discovery in peer-to-peer networks
The resource discovery problem arises in the context of peer to peer (P2P) networks, where at any point of time a peer may be placed at or removed from any location over a general purpose network (e.g., an Internet site). A node (peer) can communicate with another node directly if and only if it knows a certain routing information to that other node. Hence, a critical task is for the peers to convey this routing information to each other. 
 
The problem was formalized by Harchol-Balter et al. and the specific P2P application they had in mind was the logical networks G0 of servers placed by Akamai at various Internet sites. The routing information needed for a node to reach another peer is that peer's identifier (e.g., IP address). A logical directed edge represents the fact that the peer at the tail of the edge knows the IP address of the one at its head. The problem is to compute the connected components in the underlying graph of G0 (namely, the undirected graph obtained from G0 by removing edge directionality). A number of algorithms were developed in Harchol-Balter et al. for this problem in the model of a synchronous network over a weakly connected directed graph. That is, the assumption was that some clock delivers pulses to every node every time unit at the same time, and a message delivery takes one time unit. The best of these algorithms was randomized. Subsequently, a deterministic algorithm for the problem on synchronous networks with improved complexity was presented in a paper by Kutten et al. 
 
The current paper extends the deterministic algorithm of Kutten et al. to the environment of asynchronous networks, where no clock pulses are assumed, and the message delivery time may vary and is not known. We managed to maintain complexities similar to those of the synchronous algorithm of Kutten et al. (translated to the asynchronous model). These are lower than the complexities that would be needed to synchronize the system. The main technical difficulty in a directed, weakly connected system is to ensure that nodes take steps that are consistent with each other, even if their knowledge about each other is not symmetric. Here, this task is further complicated by the fact that there is no timeout mechanism (which does exist in synchronous systems) to assist in ensuring consistency. In particular, as opposed to the case in synchronous systems, an asynchronous algorithm cannot first transform every directed edge to be bidirectional and second, apply an algorithm for bidirectional graph. Thus, our result takes another step towards representing the actual setting in a realistic manner.