Method And System For Redirecting Data Requests In Peer-To-Peer Data Networks
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.
Claims
exact text as granted — not AI-modified1 . 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 and in a server mode while transmitting data, the method comprising:
receiving from a first peer node a 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.
2 . The method of claim 1 wherein a node identifier is an Internet Protocol (IP) address.
3 . The method of claim 1 further comprising:
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; and associating an alternate node list with each file in the list of files that are available for uploading.
4 . The method of claim 1 further comprising:
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.
5 . The method of claim 4 further comprising:
obtaining a node identifier for the first peer node; and adding the node identifier for the first peer node to the alternate node list associated with the specified file.
6 . The method of claim 5 further comprising:
associating a timestamp with the node identifier in the alternate node list associated with the specified file to indicate a time value at which the specified file was sent to the first peer node.
7 . The method of claim 1 further comprising:
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 in an overload condition, generating the response message.
8 . The method of claim 1 further comprising:
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; and adding the node identifier for the third peer node to the alternate node list associated with the retrieved file.
9 . The method of claim 8 further comprising:
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.
10 . The method of claim 1 further comprising:
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.
11 . 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 and in a server mode while providing data, the method comprising:
transmitting from a first peer node a request for a copy of a specified file to a second peer node; and receiving a response message at 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.
12 . The method of claim 11 wherein a node identifier is an Internet Protocol (IP) address.
13 . The method of claim 11 further comprising:
obtaining the alternate node list from the response message; extracting a first node identifier from the alternate node list; and sending from the first peer node a request for a copy of the specified file to a third peer node associated with the first node identifier.
14 . The method of claim 13 further comprising:
repeating the extracting and sending steps with a sequence of node identifiers from the alternate node list until a copy of the specified file is received from a peer node associated with one of the extracted node identifiers.
15 . The method of claim 14 wherein the alternate node list comprises a set of timestamps, wherein each node identifier in the alternate node list is associated with a timestamp, the method further comprising:
sorting the set of node identifiers from the alternate node list with reference to a timestamp associated with a node identifier; and performing the repetition of the extracting and sending steps in accordance with the sorted set of node identifiers.
16 . A computer program product in a computer readable medium for use in a data processing system for sharing data in a peer-to-peer network, wherein nodes within the peer-to-peer network can operate both in a client mode while requesting data and in a server mode while transmitting data, the computer program product comprising:
instructions for receiving from a first peer node a request for a copy of a specified file at a second peer node; and instructions for returning a response message to the first peer node in response to receiving the request, 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.
17 . The computer program product of claim 16 wherein a node identifier is an Internet Protocol (IP) address.
18 . The computer program product of claim 16 further comprising:
instructions for 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; and instructions for associating an alternate node list with each file in the list of files that are available for uploading.
19 . The computer program product of claim 16 further comprising:
instructions for determining whether or not the second peer node is in an overload condition in response to receiving the request; and instructions for sending a copy of the specified file to the first peer node in response to a determination that the second peer node is not in an overload condition.
20 . The computer program product of claim 19 further comprising:
instructions for obtaining a node identifier for the first peer node; and instructions for adding the node identifier for the first peer node to the alternate node list associated with the specified file.
21 . The computer program product of claim 20 further comprising:
instructions for associating a timestamp with the node identifier in the alternate node list associated with the specified file to indicate a time value at which the specified file was sent to the first peer node.
22 . The computer program product of claim 16 further comprising:
instructions for determining whether or not the second peer node is in an overload condition in response to receiving the request; and instructions for generating the response message in response to a determination that the second peer node is in an overload condition.
23 . The computer program product of claim 16 further comprising:
instructions for retrieving a copy of a file from a third peer node; instructions for storing the retrieved file at the second peer node; obtaining a node identifier for the third peer node; and instructions for adding the node identifier for the third peer node to the alternate node list associated with the retrieved file.
24 . The computer program product of claim 23 further comprising:
instructions for 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.
25 . The computer program product of claim 16 further comprising:
instructions for 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.
26 . A computer program product in a computer readable medium for use in a data processing system for sharing data in a peer-to-peer network, wherein nodes within the peer-to-peer network can operate both in a client mode while requesting data and in a server mode while transmitting data, the computer program product comprising:
instructions for transmitting from a first peer node a request for a copy of a specified file to a second peer node; and instructions for receiving a response message at 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.
27 . The computer program product of claim 26 wherein a node identifier is an Internet Protocol (IP) address.
28 . The computer program product of claim 26 further comprising:
instructions for obtaining the alternate node list from the response message; instructions for extracting a first node identifier from the alternate node list; and instructions for sending from the first peer node a request for a copy of the specified file to a third peer node associated with the first node identifier.
29 . The computer program product of claim 28 further comprising:
instructions for repeating the extracting and sending steps with a sequence of node identifiers from the alternate node list until a copy of the specified file is received from a peer node associated with one of the extracted node identifiers.
30 . The computer program product of claim 29 wherein the alternate node list comprises a set of timestamps, wherein each node identifier in the alternate node list is associated with a timestamp, the computer program product further comprising:
instructions for sorting the set of node identifiers from the alternate node list with reference to a timestamp associated with a node identifier; and instructions for performing the repetition of the extracting and sending steps in accordance with the sorted set of node identifiers.
31 . An apparatus for sharing data in a peer-to-peer network, wherein nodes within the peer-to-peer network can operate both in a client mode while requesting data and in a server mode while transmitting data, the apparatus comprising:
means for receiving from a first peer node a request for a copy of a specified file at a second peer node; and means for returning a response message to the first peer node in response to receiving the request, 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.
32 . An apparatus for sharing data in a peer-to-peer network, wherein nodes within the peer-to-peer network can operate both in a client mode while requesting data and in a server mode while transmitting data, the apparatus comprising:
means for transmitting from a first peer node a request for a copy of a specified file to a second peer node; and means for receiving a response message at 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.Join the waitlist — get patent alerts
Track US2009182842A1 — get alerts on status changes and closely related new filings.
We store only your email — no account needed. See our privacy policy.