Concurrently applying an image file while it is being downloaded using a multicast protocol
First Claim
1. A method for deploying a computer file that is segmented into a plurality of file segments to a computing device, comprising:
- receiving, from a server computer, information defining a start offset for a particular file segment of the plurality of file segments, an end offset for the particular file segment, and a block size for at least some blocks of the computer file;
calculating, based on the received start offset, end offset, and block size, a block range for the particular file segment, wherein the calculated block range defines the blocks that each include at least a portion of the particular file segment;
beginning reception, into a buffer, of at least a portion of the computer file from the server computer;
monitoring, based on the calculated block range, reception of the particular file segment;
determining, based on the monitoring of the reception status, that reception of the particular file segment has completed;
in response to the determination that the reception of the particular file segment has completed, applying, by the computing device, the received particular file segment while concurrently continuing reception of at least the portion of the computer file from the server computer;
determining that all file segments that are at least partially included in a particular data block have been applied; and
in response to the determination that all file segments that are at least partially included in the particular data block have been applied, making space, from the buffer, that is associated with the particular data block available.
2 Assignments
0 Petitions
Accused Products
Abstract
A system and a process for deploying a computer file involves a client computer applying the computer file concurrently with downloading the computer file from a file server. The concurrent operations can be performed even when the data of the computer file is downloaded out of order. The computer file includes a plurality of file segments. The client computer obtains information defining the file segments and monitors the received data of the computer file during downloading. When downloading of a file segment is complete, the client computer applies the completed segment concurrently with receiving other segments of the computer file from the file server. The process can be used when the computer file is downloaded using a multicast protocol, but is not limited to use with multicast protocols. The client computer can request only needed segments of the computer file.
-
Citations
20 Claims
-
1. A method for deploying a computer file that is segmented into a plurality of file segments to a computing device, comprising:
-
receiving, from a server computer, information defining a start offset for a particular file segment of the plurality of file segments, an end offset for the particular file segment, and a block size for at least some blocks of the computer file; calculating, based on the received start offset, end offset, and block size, a block range for the particular file segment, wherein the calculated block range defines the blocks that each include at least a portion of the particular file segment; beginning reception, into a buffer, of at least a portion of the computer file from the server computer; monitoring, based on the calculated block range, reception of the particular file segment; determining, based on the monitoring of the reception status, that reception of the particular file segment has completed; in response to the determination that the reception of the particular file segment has completed, applying, by the computing device, the received particular file segment while concurrently continuing reception of at least the portion of the computer file from the server computer; determining that all file segments that are at least partially included in a particular data block have been applied; and in response to the determination that all file segments that are at least partially included in the particular data block have been applied, making space, from the buffer, that is associated with the particular data block available. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11)
-
-
12. A client computer configured to deploy a computer file having at least a plurality of file segments, comprising:
a processor and a memory device, the memory device containing modules for execution by the processor, the modules including; a multicast module to receive at least a portion of the computer file transmitted by a server computer via a multicast protocol; a flow control buffer to buffer portions of the computer file received from the server computer; and an image apply module to; receive from the server computer information defining a particular file segment of the plurality of file segments of the computer file, wherein the information for the particular file segment includes a start offset for the particular file segment, an end offset for the particular file segment, and a data block size for at least some blocks of the computer file; calculate, based on the start offset, end offset, and data block size, a block range for the particular file segment, wherein the calculated block range defines the blocks that each include at least a portion of the particular file segment; determine, based on the calculated block range, that the particular file segment has been completely received; in response to the determination that the particular file segment has been completely received, apply the particular file segment of the computer file while the client computer is receiving other file segments of the computer file from the server computer; determine that all file segments that are at least partially included in a particular data block have been applied; and in response to the determination that all file segments that are at least partially included in the particular data block have been applied, make at least a portion of space associated with the particular data block available in the flow control buffer. - View Dependent Claims (13, 14, 15, 16, 17)
-
18. A method for deploying a computer file having a plurality of file segments, comprising:
-
receiving, from a server computer, information defining at least some of the plurality of file segments of the computer file, the received information including at least; a start offset for each of the at least some of the plurality of file segments; an end offset for each of the at least some of the plurality of file segments; and a block size for data blocks containing the at least some of the plurality of file segments; determining a block range of one or more file segments of the at least some of the plurality of file segments based on the information defining at least some of the plurality of file segments of the computer file; receiving data of the computer file transmitted by the server computer in data blocks having block numbers into a buffer; monitoring, during reception of the computer file, the block numbers of the received data blocks; determining from the determined block range of the one or more file segments and the block numbers of the received data blocks that a complete file segment has been received; in response to the determination that the complete file segment has been received, applying the complete file segment of the computer file concurrently with receiving other segments of the computer file from the server computer; determining that all file segments that are at least partially included in a particular data block have been applied; and in response to the determination that all file segments that are at least partially included in the particular data block have been applied, freeing space in the buffer that is associated with the particular data block. - View Dependent Claims (19, 20)
-
Specification