Method and apparatus for real-time parallel delivery of segments of a large payload file
First Claim
1. A method of assembling a file in response to a request from a user sent to a first node in a network having a plurality of connected nodes, comprising the steps of:
- determining, based on the request, which content components are necessary to assemble the file;
if all content components are not present at the first node, sending a search request to determine which other nodes have content components;
receiving, from said other nodes, replies to said search request, each reply from a responding node indicating which content components are available from said responding node;
determining a desired set of at least one node from which to download the content components;
downloading the content components from the desired set; and
assembling the file from the downloaded content components.
4 Assignments
0 Petitions
Accused Products
Abstract
A scalable content delivery network (SCDN) employs a parallel download mechanism to ensure that a demanded file is present at a station in time for user consumption. This mechanism is used in solving the content caching and storage problem for applications such as video-on-demand, which is commonly perceived as a tough problem in the industry. In the network, files are divided into smaller units called tracks according to the nature of data contained in each of them. Tracks are further divided into smaller equally sized units called block files. This division builds the foundation for parallel download. A sequence server provides a lock-free mechanism for multiple threads or processes to access data atomically. The sequence server allows clients to gain sequential access to data, or to find out whether the sequence has been violated so that they can retry their operation or take corrective action. Advantages of the invention include the ability to handle distribution of large files and process sequencing.
-
Citations
26 Claims
-
1. A method of assembling a file in response to a request from a user sent to a first node in a network having a plurality of connected nodes, comprising the steps of:
-
determining, based on the request, which content components are necessary to assemble the file;
if all content components are not present at the first node, sending a search request to determine which other nodes have content components;
receiving, from said other nodes, replies to said search request, each reply from a responding node indicating which content components are available from said responding node;
determining a desired set of at least one node from which to download the content components;
downloading the content components from the desired set; and
assembling the file from the downloaded content components. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 14, 15, 16, 17, 18, 19)
-
-
13. A computer program product comprising a computer usable medium having computer readable program code means embodied in said medium for causing an application program to execute on a computer to assemble a file in response to a request from a user sent to a first node in a network having a plurality of connected nodes, said computer readable program code means comprising:
-
first computer readable program code means for causing the computer to determine, based on the request, which content components are necessary to assemble the file;
second computer readable program code means for causing the computer, if all content components are not present at the first node, to send a search request to determine which other nodes have content components;
third computer readable program code means for causing the computer to receive, from said other nodes, replies to said search request, each reply from a responding node indicating which content components are available from said responding node;
fourth computer readable program code means for causing the computer to determine a desired set of at least one node from which to download the content components;
fifth computer readable program code means for causing the computer to download the content components from the desired set; and
sixth computer readable program code means for causing the computer to assemble the file from the downloaded content components.
-
-
20. A computer-based system for assembling a file in response to a request from a user sent to a first node in a network having a plurality of connected nodes, said system comprising:
-
means for determining, based on the request, which content components are necessary to assemble the file;
means for sending a search request, if all content components are not present at the first node, to determine which other nodes have content components;
means for receiving, from said other nodes, replies to said search request, each reply from a responding node indicating which content components are available from said responding node;
means for determining a desired set of at least one node from which to download the content components;
means for downloading the content components from the desired set; and
means for assembling the file from the downloaded content components. - View Dependent Claims (21, 22, 23, 24, 25, 26)
-
Specification