Method and system for redirecting data requests in peer-to-peer data networks
First Claim
1. A method for operating a data sharing application in a peer-to-peer network, wherein nodes within the peer-to-peer network can operate both in a client mode while requesting data in a server mode while transmitting data, the method comprising:
- receiving from a first peer node to request for a copy of a specified file at a second peer node; and
in response to receiving the request, returning a response message to the first peer node, wherein the response message comprises an alternate node list associated with the specified file, wherein the alternate node list comprises a set of node identifiers indicating a set of alternate peer nodes within the peer-to-peer network that may have a copy of the specified file;
maintaining an uploadable file list at the second peer node, wherein the uploadable file list comprises a set of file identifiers indicating a set of files stored on the second peer node that are available for uploading in response to received requests;
associating an alternate node list with each file in the list of files that are available for uploading;
in response to receiving the request, determining whether or not the second peer node is in an overload condition; and
in response to a determination that the second peer node is not in an overload condition, sending a copy of the specified file to the first peer node;
obtaining a node identifier for the first peer node wherein a node identifier is an Internet Protocol (IP) address;
adding the node identifier for the first peer node to the alternate node list associated with the specified file;
in response to receiving the request, determining whether or not the second peer node is in an overload condition;
in response to a determination that the second peer node is in an overload condition, generating the response message;
retrieving a copy of a file from a third peer node;
storing the retrieved file at the second peer node;
obtaining a node identifier for the third peer node;
adding the node identifier for the third peer node to the alternate node list associated with the retrieved file;
associating a timestamp with the node identifier in the alternate node list associated with the retrieved file to indicate a time value at which the retrieved file was retrieved from the third peer node; and
,processing the alternate node list associated with the specified file with respect to a set of timestamps within the alternate node list in order to delete node identifiers associated with timestamps that are older than a configurable threshold value.
1 Assignment
0 Petitions
Accused Products
Abstract
A methodology for operating a data sharing application in a peer-to-peer network is presented. After a first peer node receives a request for a copy of a specified file from a second peer node, the first peer node may either return a copy of the specified file or a response message containing an alternate node list associated with the specified file. The alternate node list contains a set of node identifiers indicating a set of alternate peer nodes within the peer-to-peer network that may have a copy of the specified file. The alternate node list is dynamically maintained at each peer node. The response provided by the first peer node, i.e. either a copy of the specified file or the alternate node list, can be determined based on an operational condition of the first peer node, e.g., whether or not the first peer node is experiencing an overload condition.
-
Citations
1 Claim
-
1. A method for operating a data sharing application in a peer-to-peer network, wherein nodes within the peer-to-peer network can operate both in a client mode while requesting data in a server mode while transmitting data, the method comprising:
-
receiving from a first peer node to request for a copy of a specified file at a second peer node; and in response to receiving the request, returning a response message to the first peer node, wherein the response message comprises an alternate node list associated with the specified file, wherein the alternate node list comprises a set of node identifiers indicating a set of alternate peer nodes within the peer-to-peer network that may have a copy of the specified file; maintaining an uploadable file list at the second peer node, wherein the uploadable file list comprises a set of file identifiers indicating a set of files stored on the second peer node that are available for uploading in response to received requests; associating an alternate node list with each file in the list of files that are available for uploading; in response to receiving the request, determining whether or not the second peer node is in an overload condition; and in response to a determination that the second peer node is not in an overload condition, sending a copy of the specified file to the first peer node; obtaining a node identifier for the first peer node wherein a node identifier is an Internet Protocol (IP) address; adding the node identifier for the first peer node to the alternate node list associated with the specified file; in response to receiving the request, determining whether or not the second peer node is in an overload condition; in response to a determination that the second peer node is in an overload condition, generating the response message; retrieving a copy of a file from a third peer node; storing the retrieved file at the second peer node; obtaining a node identifier for the third peer node; adding the node identifier for the third peer node to the alternate node list associated with the retrieved file; associating a timestamp with the node identifier in the alternate node list associated with the retrieved file to indicate a time value at which the retrieved file was retrieved from the third peer node; and
,processing the alternate node list associated with the specified file with respect to a set of timestamps within the alternate node list in order to delete node identifiers associated with timestamps that are older than a configurable threshold value.
-
Specification