Method and apparatus for large payload distribution in a network
First Claim
1. A method for distributing content to a plurality of network nodes comprising:
- obtaining a payload filed having content from a client for distribution in a network having a plurality of nodes, said client providing distributing criteria for said content;
dividing said content into plurality of block files by;
evaluating said payload file to locate a portion having substantive content;
determining if said content from said payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said payload file;
generating a track file if said content comprises said linear characteristics;
generating a plurality of track files if said content does not comprise said linear characteristics;
determining at least one desired block size;
if said content comprises linear characteristics, dividing said track file to generate a plurality of block files, wherein each of said block files correspond in size to said at least one desired block size; and
if said content does not comprise linear characteristics, dividing each of said plurality of track files to generate a plurality of block files, wherein each of said block files correspond in size to said at least one desired block size; and
distributing a subset of said plurality of block files to a plurality of qualified nodes.
4 Assignments
0 Petitions
Accused Products
Abstract
Large payload files are selectively partitioned in blocks and the blocks distributed to a plurality of distribution stations at the edge of the network qualified to have the data. Each qualified station decides how much and what portion of the content to save locally, based on information such as network location and environment, usage, popularity, and other distribution criteria defined by the content provider. Different pieces of a large payload file may be available from different nodes, however, when a user requests access to the large payload file, for example, through an application server, a virtual file control system creates an illusion that the entire file is present at the connected node. However, since only selective portions of the large payload file may actually be resident at that node'"'"'s storage at the time of request, a cluster of distribution servers at the distribution station may download the non-resident portions of the file as the application server is servicing the user. The download may be in parallel and usually from the least congested nodes. New nodes added to the network learn from other nodes in the network what content they should have and download the required content, in a desired amount, onto their local storage devices from the nearest and least congested nodes without interrupting network operation. Each node manages its local storage and decides what content to prune based on information such as usage patterns.
121 Citations
47 Claims
-
1. A method for distributing content to a plurality of network nodes comprising:
-
obtaining a payload filed having content from a client for distribution in a network having a plurality of nodes, said client providing distributing criteria for said content;
dividing said content into plurality of block files by;
evaluating said payload file to locate a portion having substantive content;
determining if said content from said payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said payload file;
generating a track file if said content comprises said linear characteristics;
generating a plurality of track files if said content does not comprise said linear characteristics;
determining at least one desired block size;
if said content comprises linear characteristics, dividing said track file to generate a plurality of block files, wherein each of said block files correspond in size to said at least one desired block size; and
if said content does not comprise linear characteristics, dividing each of said plurality of track files to generate a plurality of block files, wherein each of said block files correspond in size to said at least one desired block size; and
distributing a subset of said plurality of block files to a plurality of qualified nodes. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. A method for distributing content to a plurality of network nodes comprising:
-
obtaining a payload file having content from a client for distribution in a network having a plurality of nodes, said client providing distribution criteria for said content;
dividing said content into a plurality of block files; and
distributing a subset of said plurality of block files to a plurality of qualified nodes by;
an initiating node announcing the existence of said content of said payload file by sending a notification to neighbor nodes;
said neighbor nodes of said initiating node forwarding said notification to nodes that are neighboring said neighbor nodes, wherein propagation of said notification continues until all of said plurality of nodes in said network have received said notification; and
each of said qualified nodes downloading a desired subset of said block files from one or more of said plurality of nodes having said content. - View Dependent Claims (11, 12, 13)
-
-
14. A method for distributing content to a plurality of network nodes comprising:
-
obtaining a large payload file having content from a content provider for distribution in a network having a plurality of nodes;
said content provider providing distribution criteria for said content, said distribution criteria having information about which of said plurality of nodes are authorized to have said content;
dividing said content into a plurality of block files each having a block size that maximizes playback of said content;
storing said plurality of block files in a plurality of local storage devices such that said plurality of block files are distributed over said plurality of local storage devices to load balance said plurality of local storage devices during input/output operations;
distributing a subset of said plurality of block files from said local storage devices to each one of said plurality of nodes qualified to receive said file content, wherein said nodes qualified are those nodes that conform to said distribution criteria set by said content provider.
-
-
15. A method for distributing content to a plurality of network nodes comprising:
-
obtaining a large payload file comprising file content from a client for distribution in a network having a plurality of nodes, said client providing distribution criteria for said file content, said distribution criteria having information about which of said plurality of nodes are authorized to have said content;
dividing said file content into a plurality of block files having a block size that maximizes playback of said content;
storing said plurality of block files in a plurality of local storage devices such that said plurality of block files are distributed over said plurality of local storage devices to load balance said plurality of local storage devices during input/output operations;
distributing a subset of said plurality of block files from said local storage devices to each one of said plurality of nodes qualified to receive said file content, wherein said nodes qualified are those nodes that conform to said distribution criteria set by said client, wherein each qualified node receiving said subset of said plurality of block files distributes said subset into a plurality of local storage devices of said receiving node.
-
-
16. A computer program product comprising:
-
a computer usable medium comprising computer readable code for distributing content to a plurality of network nodes, said computer readable program code configured to;
obtain a payload file having content from a client for distribution in a network having a plurality of nodes, said client providing distribution criteria for said content;
divide said content into a plurality of block files by;
evaluating said payload file to locate a portion having substantive content;
determining if said content from said payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said payload file;
generating a track file if said content comprises said linear characteristics;
generating a plurality of track files if said content does not comprise said linear characteristics;
determining at least one desired block size;
if said content comprises linear characteristics, dividing said track file to generate a plurality of block files, wherein each of said block files correspond in size to said at least one desired block size;
if said content does not comprise linear characteristics, dividing each of said plurality of track files to generate a plurality of block files, wherein each of said block files correspond in size to said at least one desired block size. obtain a payload file having content from a client for distribution; and
distribute a subset of said plurality of block files to a plurality of qualified nodes. - View Dependent Claims (17, 18, 19, 20, 21, 22, 23, 24)
-
-
25. A computer program product comprising:
a computer usable medium comprising computer readable code for distributing content to a plurality of network nodes, said computer readable program code configured to;
obtain a payload file having content from, a client for distribution in a network having a plurality of nodes, said client providing distribution criteria for said content;
divide said content into a plurality of block files; and
distribute a subset of said plurality of block files to a plurality of qualified nodes by;
an initiating node announcing the existence of said content of said payload file by sending a notification to neighbor nodes;
said neighbor nodes of said initiating node forwarding said notification to nodes that are neighboring said neighbor nodes, wherein propagation of said notification continues until all of said plurality of nodes in said network have received said notification; and
each of said qualified nodes downloading a desired subset of said block files from one or more of said plurality of nodes having said content. - View Dependent Claims (26, 27, 28)
-
29. An apparatus for distributing content to a plurality of network nodes comprising:
-
a network having a plurality of nodes each having a plurality of components capable of communicating with one another, said plurality of components comprising one or more first servers in a first server cluster; and
a third server obtaining a payload tile having content from a client for distribution in said network, said client providing distribution criteria for said content, said third server transmitting said payload file to a first server of said one or more first servers in said first server cluster, said first server dividing said content into a plurality of block files and distributing a subset of said plurality of block files to a plurality of qualified nodes, wherein said third server transmitting said payload file to said first server comprises said third server;
evaluating said payload file to locate a portion having substantive content;
determining if said content from said payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said payload file;
generating a track file and transmitting said track file to said first server if said content comprises said linear characteristics;
generating a plurality of track files and transmitting said plurality of track files to said first server if said content does not comprise said linear characteristics. - View Dependent Claims (30, 31, 32, 33, 34, 35, 36, 37, 38, 39, 40, 45, 46, 47)
-
-
41. An apparatus for distributing content to a plurality of network nodes comprising:
-
a network having a plurality of nodes, each of said plurality of nodes having a plurality of components capable of communicating with one another, said plurality of components comprising one or more first servers in a first server cluster;
a third server obtaining a payload file having content from a client for distribution in said network, said client providing distribution criteria for said content, said third server transmitting said payload file to a first server of said one or more first servers in said first server cluster, said first server dividing said content into a plurality of block files and distributing a subset of said plurality of block files to a plurality of qualified nodes, wherein said distributing a subset of said plurality of block files comprises;
a first server in an initiating node announcing the existence of said content of said payload file by sending a notification to neighbor nodes;
said neighbor nodes of said initiating node forwarding said notification to nodes that are neighboring said neighbor nodes, wherein propagation of said notification continues until all of said plurality of nodes in said network have received said notification;
one or more first servers in said first server cluster in each of said qualified nodes downloading a desired subset of said block files from one or more of said plurality of nodes having said content. - View Dependent Claims (42, 43, 44)
-
Specification