LOAD BALANCING DISTRIBUTION OF DATA TO MULTIPLE RECIPIENTS ON A PEER-TO-PEER NETWORK
First Claim
Patent Images
1. A peer-to-peer network, comprising:
- a plurality of peer nodes, wherein each peer node is configured to communicate with one or more other ones of said peer nodes over the peer-to-peer network, wherein each peer node is operable to;
A) receive or initiate a request to search for a plurality of items, wherein each item is represented by a key value, arrange the plurality of items into a list according to a key value order, divide the list into two or more parts of approximately equal size, look up in a finger table a finger node to closest to a first key value in each part, and, for each part, forward a request for the items in the part to the corresponding finger node; and
/orB) broadcast one or more items to a plurality of peer nodes by arranging the plurality of peer nodes into a list according to a key value order, dividing the list into two or more parts of approximately equal size, and forwarding each part of the list and the one or more items to a peer node corresponding to a first key in that part of the list.
4 Assignments
0 Petitions
Accused Products
Abstract
A method and system for load balancing the distribution of a file or block of data to multiple recipients on a peer to peer network is disclosed.
-
Citations
25 Claims
-
1. A peer-to-peer network, comprising:
- a plurality of peer nodes, wherein each peer node is configured to communicate with one or more other ones of said peer nodes over the peer-to-peer network, wherein each peer node is operable to;
A) receive or initiate a request to search for a plurality of items, wherein each item is represented by a key value, arrange the plurality of items into a list according to a key value order, divide the list into two or more parts of approximately equal size, look up in a finger table a finger node to closest to a first key value in each part, and, for each part, forward a request for the items in the part to the corresponding finger node; and
/orB) broadcast one or more items to a plurality of peer nodes by arranging the plurality of peer nodes into a list according to a key value order, dividing the list into two or more parts of approximately equal size, and forwarding each part of the list and the one or more items to a peer node corresponding to a first key in that part of the list. - View Dependent Claims (2, 3, 4, 5)
- a plurality of peer nodes, wherein each peer node is configured to communicate with one or more other ones of said peer nodes over the peer-to-peer network, wherein each peer node is operable to;
-
6. A peer node, comprising:
- a processor;
a network interface operable to couple the peer node to a network; and
a memory operable to store program instructions and a finger table, wherein the program instructions are executable by the processor to;
communicate with one or more peer nodes on a peer-to-peer network;
wherein the peer node is operable toA) receive or initiate a request to search for a plurality of items, wherein each item is represented by a key value, arrange the plurality of items into a list according to a key value order, divide the list into two or more parts of approximately equal size, look up in a finger table a finger node to closest to a first key value in each part, and, for each part, forward a request for the items in the part to the corresponding finger node; and
/orB) broadcast one or more items to a plurality of peer nodes by arranging the plurality of peer nodes into a list according to a key value order, dividing the list into two or more parts of approximately equal size, and forwarding each part of the list and the one or more items to a peer node corresponding to a first key in that part of the list - View Dependent Claims (7, 8, 9, 10, 11)
- a processor;
-
12. In a peer-to-peer overlay network a search method, comprising:
-
receiving or initiating at a peer node a request to search for a plurality of items, wherein each item is represented by a key value; a) arranging the plurality of items into a list according to a key value order; b) dividing the list into two or more parts of approximately equal size; c) looking up in a finger table a finger node for each part based on a first key value in that part; and d) forwarding a request for the items corresponding to each part to the corresponding finger node. - View Dependent Claims (13, 14, 15, 16, 17, 18)
-
-
19. In a peer-to-peer overlay network a method for broadcasting one or more items of data to a plurality of peer nodes organized in a peer-to-peer overlay network wherein each peer node is associated with a key, the method comprising:
-
arranging the plurality of peer nodes into a list according to a key value order; dividing the list into two or more parts of approximately equal size; and forwarding each part of the list and the one or more items to a peer node corresponding to a first key in that part of the list. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A tangible, computer-accessible storage medium comprising program instructions, wherein the program instructions are computer-executable on a peer node to implement:
-
a) receiving or initiating at the peer node a request to search for a plurality of items, wherein each item is represented by a key value; b) arranging the plurality of items into a list according to a key value order; c) dividing the list into two or more parts of approximately equal size; d) looking up in a finger table a finger node for each part based on a first key value in that part; and e) forwarding a request for the items corresponding to each part to the corresponding finger node.
-
-
25. A tangible, computer-accessible storage medium comprising program instructions, wherein the program instructions are computer-executable on a peer node to implement:
-
arranging a plurality of peer nodes to which one or more items are to be broadcast into a list according to a key value order; dividing the list into two or more parts of approximately equal size; and forwarding each part of the list and the one or more items to a peer node corresponding to a first key in that part of the list.
-
Specification