Dynamic Timeouts and Neighbor Selection Queries in Peer-to-Peer Networks

W. Hoschek (Switzerland)


Peer-to-Peer Networks, Messaging, Service Discovery


In a Peer-to-Peer (P2P) network, non-pipelining query result set delivery without a dynamic abort timeout feature is highly unreliable due to what we propose as the simultaneous abort problem: If only one of the many nodes in the query path fails to be responsive for what ever reasons, all other nodes in the chain are waiting, eventually time out at the same time, and the originator receives not even a single result. To address the problem, we derive dynamic abort timeouts using as policy exponential decay with halving. This ensures that a maximum of results can be delivered reliably within the time frame desired by a user. We establish that a timeout for loop detection in query routes must be static. A dynamic timeout is unsuitable to be used as loop timeout, due to what we propose as the non-simultaneous loop timeout problem. In a P2P network, a node forwards a query to the set of nodes obtained from neighbor selection. Using neighbor selection, explicit topology characteristics can be exploited in query guidance. The best neighbor selection policy to adopt depends on the context of the query and the topology. For flexibility and expressiveness, we pro pose to allow the user to specify the selection policy. In addition to the normal query, the user defines a neighbor selection query (XQuery) that takes the tuple set of the current node as input and returns a subset that indicates the nodes selected for forwarding. A wide range of policies can be implemented in this manner, as the neighbor selection policy can draw from the rich set of information contained in the tuples published to the node.

Important Links:

Go Back