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,wherein dividing the list into two or more parts of approximately equal size, looking up the finger node closest to the first key value in each part, and, for each part, forwarding the request to the corresponding finger node avoids overloading intermediate nodes in routing requests in the peer-to-peer network; 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,wherein 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 avoids overloading intermediate nodes in routing messages in the peer-to-peer network.
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.
26 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, wherein dividing the list into two or more parts of approximately equal size, looking up the finger node closest to the first key value in each part, and, for each part, forwarding the request to the corresponding finger node avoids overloading intermediate nodes in routing requests in the peer-to-peer network; 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, wherein 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 avoids overloading intermediate nodes in routing messages in the peer-to-peer network. - 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 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, wherein dividing the list into two or more parts of approximately equal size, looking up the finger node closest to the first key value in each part, and, for each part, forwarding the request to the corresponding finger node avoids overloading intermediate nodes in routing requests in the peer-to-peer network; 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, wherein 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 avoids overloading intermediate nodes in routing messages in the peer-to-peer network. - 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, wherein dividing the list into two or more parts of approximately equal size, looking up the finger node closest to the first key value in each part, and, for each part, forwarding the request to the corresponding finger node avoids overloading intermediate nodes in routing requests in the peer-to-peer network. - 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, wherein 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 avoids overloading intermediate nodes in routing messages in the peer-to-peer network. - View Dependent Claims (20, 21, 22, 23)
-
-
24. A non transitory 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, wherein dividing the list into two or more parts of approximately equal size, looking up the finger node closest to the first key value in each part, and, for each part, forwarding the request to the corresponding finger node avoids overloading intermediate nodes in routing requests in the peer-to-peer network.
-
-
25. A non transitory 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, wherein 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 avoids overloading intermediate nodes in routing messages in the peer-to-peer network.
-
Specification