Method and apparatus for distributing large payload file to a plurality of storage devices in a network
First Claim
1. A method for distributing content of a large payload file to a plurality of storage devices in a network comprising:
- obtaining a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in a network, including;
evaluating said large payload file to locate a portion having substantive content;
determining if said content from said large payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said large 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 a 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 the 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;
associating said plurality of block files with said plurality of storage devices;
storing said plurality of block files in said plurality of storage devices based on said associations; and
creating a virtual file, using said associations, for presentation to a client requesting said content, said virtual file providing an illusion to said client that said content is contiguous in said network.
3 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.
-
Citations
34 Claims
-
1. A method for distributing content of a large payload file to a plurality of storage devices in a network comprising:
-
obtaining a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in a network, including; evaluating said large payload file to locate a portion having substantive content; determining if said content from said large payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said large 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 a 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 the 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; associating said plurality of block files with said plurality of storage devices;
storing said plurality of block files in said plurality of storage devices based on said associations; andcreating a virtual file, using said associations, for presentation to a client requesting said content, said virtual file providing an illusion to said client that said content is contiguous in said network. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A method for distributing content of a large payload file to a plurality of storage devices in a network comprising:
-
obtaining a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in a network, including; evaluating said large payload file to locate a portion having substantive content; determining if said content from said large payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said large 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 a 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 the 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; associating said plurality of block files with said plurality of storage devices;
wherein said associating comprises creating associations by distributing said plurality of block files amongst said plurality of storage devices such that said plurality of storage devices are load balanced during input/output operations;storing said associations in a file metadata in said plurality of storage devices, said associations comprising information for rebuilding said large payload file from said block files; storing said plurality of block files in said plurality of storage devices based on said associations; creating a virtual file, using said associations, for presentation to a client requesting said content, said virtual file providing an illusion to said client that said content is contiguous in said network.
-
-
13. A computer program product comprising:
-
a computer readable medium comprising computer readable code for distributing content of large payload file to a plurality of storage devices in a network, said computer readable program code configured to; obtain a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in a network, including; evaluate said large payload file to locate a portion having substantive content; determine if said content from said large payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said large payload file; generate 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; determine at least one desired block size, if said content comprises linear characteristics, dividing a 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 the 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; associate said plurality of block files with said plurality of storage devices;
store said plurality of block files in said plurality of storage devices based on said associations;create a virtual file, using said associations, for presentation to a client requesting said content, said virtual file providing an illusion to said client that said content is contiguous in said network. - View Dependent Claims (14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. An apparatus for distributing content of a large payload file to a plurality of storage devices in a network comprising:
-
one or more first servers in a first server cluster of a network obtaining a plurality of block files representing content of a large payload file for storage in a plurality of storage devices in said network, said one or more first servers associating said plurality of block files with said plurality of storage devices and storing said plurality of block files in said plurality of storage devices based on said associations; one or more second servers in a second server cluster of said network creating a virtual file, using said associations, for presentation to a client requesting said content, said virtual file providing an illusion to said client that said content is contiguous in said network; and a third server obtaining said large payload file from a user, said third server evaluating said large payload file to locate a portion having substantive content and determining if said content from said large payload file comprises linear characteristics by determining if said substantive content is located at a starting end of said large payload file, said third server generating a track file if said content comprises said linear characteristics and transmitting said track file to said one or more first servers, and said third server generating a plurality of track files if said content does not comprise said linear characteristics and transmitting said plurality of track files to said one or more first servers. - View Dependent Claims (25, 26, 27, 28, 29, 30, 31, 32, 33, 34)
-
Specification