Patent ID: 7826396
Filing Date: 2010-11-02
Classification: H04L

Abstract:
1. A method for a host node in a peer to peer computer network to determine its coordinates in a d-dimensional network space that uses Peer Name Resolution Protocol (PNRP), comprising, at the host node: determining, by the host node, whether the host node is a first locality-aware node in the peer to peer computer network; if the host node determines the host node is the first locality-aware node in the peer to peer computer network, setting a fist set of network coordinates of the host node to be an origin of the d-dimensional network space; and if the host node determines the host node is not the first locality-aware node in the peer-to-peer computer network: discovering an address of a peer node in the PNRP network; measuring network latency between the host node and the peer node based on results of a probe of a publisher of the address of the peer node; storing, in an entry of a global cloud cache at the host node, locality data for the peer node and a state indicating whether or not a valid locality estimation has been obtained for the peer node; determining a number of locality-aware peer nodes for which network latency has been measured, the number of locality-aware peer nodes for which network latency has been measured corresponding to a number of probe results stored in the global cloud cache; if the number of locality-aware peer nodes for which network latency has been measured is less than d+1, estimating the first set of network coordinates of the host node; if the number of locality-aware peer nodes for which network latency has been measured is greater than or equal to d+1, calculating the first set of network coordinates of the host node in the peer to peer network using d+1 measured latencies wherein closer locality-aware peer nodes to the host node will have a smaller network latency and closer network coordinates and locality-aware peer nodes that are further away from the host node will have a higher network latency and further network coordinates from the host node; receiving a trigger for a coordinate reset; selecting a subset of known locality-aware peer nodes based at least in part on levels in the global cloud cache; re-measuring the network latency between the host node and each of the subset of known locality-aware peer nodes; calculating a second set of network coordinates of the host node using re-measured network latency; and using the second set of network coordinates of the host node when a first calculated error corresponding to the first set of network coordinates is greater than or equal to a second calculated error corresponding to the second set of network coordinates.