Data distribution system
First Claim
Patent Images
1. A method for distributing data, comprising:
- receiving, using a processor, at a first node of a plurality of nodes a first request for data associated with a first file;
determining at the first node that the first file is located on a second node based at least in part on a portion of a distributed global index associated with the first file, wherein the distributed global index is associated with a plurality of files including the first file, and the portion of the distributed global index includes data indicating one or more of the plurality of nodes on which the first file is stored;
receiving at the first node a second request for data associated with the first file;
determining that a third node should have an instance of the first file, wherein the determination is based at least in part on dynamically collected statistical information, wherein each of the first, second, and third nodes is configured to cooperate with other nodes in performing actions instead of following instructions from a central decision maker;
causing the third node to have an instance of the first file, wherein the third node is configured to indicate to a node sending the instance of the first file whether the third node is able to receive the instance of the first file;
receiving an indication that the third node has received the instance of the first file; and
in response to the indication, demoting the first file at the sending node to a cached copy and including an association to the third node at the sending node such that the sending node is configured to redirect a subsequent request associated with the first file received at the sending node to the third node.
2 Assignments
0 Petitions
Accused Products
Abstract
Distributing data is disclosed. A first request for data associated with a first file is received at a first node. It is determined, at the first node, that the first file is located on a second node. A second request for data associated with the first file is received at the first node. It is determined that a third node should have an instance of the first file. The third node is caused to have an instance of the first file.
-
Citations
25 Claims
-
1. A method for distributing data, comprising:
-
receiving, using a processor, at a first node of a plurality of nodes a first request for data associated with a first file; determining at the first node that the first file is located on a second node based at least in part on a portion of a distributed global index associated with the first file, wherein the distributed global index is associated with a plurality of files including the first file, and the portion of the distributed global index includes data indicating one or more of the plurality of nodes on which the first file is stored; receiving at the first node a second request for data associated with the first file; determining that a third node should have an instance of the first file, wherein the determination is based at least in part on dynamically collected statistical information, wherein each of the first, second, and third nodes is configured to cooperate with other nodes in performing actions instead of following instructions from a central decision maker; causing the third node to have an instance of the first file, wherein the third node is configured to indicate to a node sending the instance of the first file whether the third node is able to receive the instance of the first file; receiving an indication that the third node has received the instance of the first file; and in response to the indication, demoting the first file at the sending node to a cached copy and including an association to the third node at the sending node such that the sending node is configured to redirect a subsequent request associated with the first file received at the sending node to the third node. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16)
-
-
17. A system for distributing data, comprising:
-
a processor configured to; receive at a first node of a plurality of nodes a first request for data associated with a first file; determine at the first node that the first file is located on a second node based at least in part on a portion of a distributed global index associated with the first file, wherein the distributed global index is associated with a plurality of files including the first file, and the portion of the distributed global index includes data indicating one or more of the plurality of nodes on which the first file is stored; receive at the first node a second request for data associated with the first file; determine that a third node should have an instance of the first file, wherein the determination is based at least in part on dynamically collected statistical information, wherein each of the first, second, and third nodes is configured to cooperate with other nodes in performing actions instead of following instructions from a central decision maker; cause the third node to have an instance of the first file, wherein the third node is configured to indicate to a node sending the instance of the first file whether the third node is able to receive the instance of the first file; receive an indication that the third node has received the instance of the first file; and in response to the indication, demote the first file at the sending node to a cached copy and include an association to the third node at the sending node such that the sending node is configured to redirect a subsequent request associated with the first file received at the sending node to the third node; and a memory coupled to the processor and configured to provide the processor with instructions. - View Dependent Claims (18, 19, 20, 21, 22)
-
-
23. A computer program product for distributing data, the computer program product being embodied in a computer readable storage medium and comprising computer instructions for:
-
receiving at a first node of a plurality of nodes a first request for data associated with a first file; determining at the first node that the first file is located on a second node based at least in part on a portion of a distributed global index associated with the first file, wherein the distributed global index is associated with a plurality of files including the first file, and the portion of the distributed global index includes data indicating one or more of the plurality of nodes on which the first file is stored; receiving at the first node a second request for data associated with the first file; determining that a third node should have an instance of the first file, wherein the determination is based at least in part on dynamically collected statistical information, wherein each of the first, second, and third nodes is configured to cooperate with other nodes in performing actions instead of following instructions from a central decision maker; causing the third node to have an instance of the first file, wherein the third node is configured to indicate to a node sending the instance of the first file whether the third node is able to receive the instance of the first file; receiving an indication that the third node has received the instance of the first file; and in response to the indication, demoting the first file at the sending node to a cached copy and including an association to the third node at the sending node such that the sending node is configured to redirect a subsequent request associated with the first file received at the sending node to the third node. - View Dependent Claims (24, 25)
-
Specification