Method and apparatus for merging delta streams to reconstruct a computer file
First Claim
1. In a programmable computer, a method of merging an original data stream with a sequential plurality of delta streams to build an updated data stream, the method comprising the steps of:
- a) initiating a search request, within the sequential plurality of delta streams, for a number of data bytes to transfer to the updated data stream;
b) fulfilling the search request with data bytes provided by the last delta stream in the sequential plurality of delta streams which is capable of supplying data bytes;
c) if the sequential plurality of delta streams is incapable of fulfilling the search request, fulfilling the search request with data bytes provided by the original data stream; and
d) repeating steps a)-c) until a search request cannot be fulfilled, and the updated data stream is complete.
6 Assignments
0 Petitions
Accused Products
Abstract
A computer apparatus and method for merging a sequential plurality of delta streams, wherein each delta stream represents a change to either a prior delta stream, an original data stream, or an updated data stream. The method and apparatus may be used to 1) merge a sequential plurality of delta streams with an original data stream to create an updated data stream, 2) merge a sequential plurality of delta streams to create a compiled delta stream, or 3) merge a sequential plurality of negative delta streams to retrieve a desired prior data stream. The method and apparatus may be used in conjunction with a computer backup process, version manager, or the like. In summary, a consumer process initiates a number of search requests, within a transaction chain corresponding to the sequential plurality of delta streams, for a number of data bytes to transfer to an updated data stream. The search requests may be fulfilled with data bytes provided by the last delta stream in the transaction chain capable of supplying data bytes, or if the sequential plurality of delta streams is incapable of fulfilling the search request, it may be fulfilled with data bytes provided by the original data stream. As the sequential plurality of delta streams is merged, a sequential plurality of negative delta streams may be generated, thus enabling reconstruction of a desired prior data stream.
211 Citations
56 Claims
-
1. In a programmable computer, a method of merging an original data stream with a sequential plurality of delta streams to build an updated data stream, the method comprising the steps of:
-
a) initiating a search request, within the sequential plurality of delta streams, for a number of data bytes to transfer to the updated data stream; b) fulfilling the search request with data bytes provided by the last delta stream in the sequential plurality of delta streams which is capable of supplying data bytes; c) if the sequential plurality of delta streams is incapable of fulfilling the search request, fulfilling the search request with data bytes provided by the original data stream; and d) repeating steps a)-c) until a search request cannot be fulfilled, and the updated data stream is complete. - View Dependent Claims (2, 3, 4, 5)
-
-
6. In a programmable computer, a method of merging an original data stream with a plurality of delta streams to build an updated data stream, the method comprising the steps of:
-
a) constructing a chain of transaction elements corresponding to the sequential plurality of delta streams, wherein a highest numbered transaction element in the transaction chain is associated with a delta stream representing a latest revision to the original data stream, a lowest numbered transaction element in the transaction chain is associated with a delta stream representing a first revision to the original data stream, and consecutively numbered transaction elements in the transaction chain are associated with sequential revisions to the original data stream; b) initiating a search request, within the transaction chain, for a number of data bytes to transfer to the updated data stream; c) fulfilling the search request with data bytes provided by the highest numbered transaction element in the transaction chain capable of supplying data bytes; d) if the transaction elements of the transaction chain are incapable of fulfilling the search request, fulfilling the search request with data bytes provided by the original data stream; and e) repeating steps a)-d) until a search request cannot be fulfilled, and the updated data stream is complete. - View Dependent Claims (7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23)
-
-
24. In a programmable computer, a method of merging an updated data stream with one or more negative delta streams to reconstruct a desired prior data stream, the method comprising the steps of:
-
a) constructing a chain of transaction elements corresponding to the plurality of negative delta streams, wherein a highest numbered transaction element in the transaction chain is associated with a negative delta stream representing a last required revision to the updated data stream, a lowest numbered transaction element in the transaction chain is associated with a negative delta stream representing a first required revision to the updated data stream, and consecutively numbered transaction elements in the transaction chain are associated with sequentially required revisions to the updated data stream; b) initiating a search request, within the transaction chain, for a number of data bytes to transfer to the desired prior data stream; c) fulfilling the search request with data bytes provided by the highest numbered transaction element in the transaction chain capable of supplying data bytes; d) if the transaction elements of the transaction chain are incapable of fulfilling the search request, fulfilling the search request with data bytes provided by the updated data stream; and e) repeating steps a)-d) until a search request cannot be fulfilled, and the desired prior data stream is complete.
-
-
25. In a programmable computer, a method of constructing a negative delta stream during a merge of an original data stream with a delta stream, the method comprising the steps of:
-
a) initiating a search request, within a current match and/or data delta frame of the delta stream, for a number of data bytes to transfer to an updated data stream; b) if the current delta frame of the delta stream is empty, loading a next delta frame from the delta stream as the current delta frame; c) monitoring an original data stream position associated with the delta stream; d) after loading a next delta frame which is a match frame, i) calculating a prior stream lag count as the difference between the match frame'"'"'s source match position and the delta stream'"'"'s original data stream position; ii) transferring a number of bytes, equaling the prior stream lag count, from the original data stream to the negative delta stream, in the form of a data frame; iii) creating an inverse of the match frame; iv) recording the inverse match frame in the negative delta stream; and v) incrementing the original data stream position associated with the delta stream by a number equal to the prior stream lag count; e) if the delta stream is capable of supplying data bytes from a current frame which is a data frame, fulfilling the search request with data bytes provided from the current frame; f) if the delta stream is incapable of fulfilling the search request, fulfilling the search request with data bytes provided by the original data stream; g) incrementing the original data stream position associated with the delta stream by the number of data bytes provided to the updated data stream by the original data stream; and h) repeating steps a)-g) until a search request cannot be fulfilled, and the updated data stream is complete. - View Dependent Claims (26)
-
-
27. In a programmable computer, a method of merging a sequential plurality of delta streams to create a compiled delta stream, the method comprising the steps of:
-
a) initiating a search request, within the sequential plurality of delta streams, for a data frame to transfer to the compiled delta stream; b) fulfilling the search request with a data frame provided by the last delta stream in the sequential plurality of delta streams which is capable of supplying a data frame; c) if the sequential plurality of delta streams is incapable of fulfilling the search request, constructing a match frame to transfer to the compiled delta stream; and d) repeating steps a)-c) until a search request cannot be fulfilled, and the compiled delta stream is complete. - View Dependent Claims (28, 29, 30, 31)
-
-
32. In a programmable computer, a method of merging a sequential plurality of delta streams to create a compiled delta stream, the method comprising the steps of:
-
a) constructing a chain of transaction elements corresponding to the sequential plurality of delta streams, wherein a highest numbered transaction element in the transaction chain is associated with a delta stream representing a latest revision to an original data stream, a lowest numbered transaction element in the transaction chain is associated with a delta stream representing a first revision to the original data stream, and consecutively numbered transaction elements in the transaction chain are associated with sequential revisions to the original data stream; b) initiating a search request, within the transaction chain, for a data frame to transfer to the compiled delta stream; c) fulfilling the search request with a data frame provided by the highest numbered transaction element in the transaction chain which is capable of supplying a data frame; d) if the transaction elements of the transaction chain are incapable of fulfilling the search request, constructing a match frame to transfer to the compiled delta stream; and e) repeating steps a)-d) until a search request cannot be fulfilled, and the compiled delta stream is complete. - View Dependent Claims (33, 34, 35, 36, 37, 38, 39, 40)
-
-
41. A computer programmed to merge a sequential plurality of delta streams with an original data stream, in a single pass, to create an updated data stream, the computer comprising:
-
a) a transaction chain comprising a plurality of sequenced transaction elements, wherein each transaction element has a delta stream input corresponding to one of the sequential plurality of delta streams; and b) a consumer process, connected to a trailing element of the transaction chain, and comprising an input for the original data stream and an output for the updated data stream. - View Dependent Claims (42, 43)
-
-
44. A computer programmed to merge a sequential plurality of negative delta streams with an updated data stream, in a single pass, to reconstruct a desired prior data stream, the computer comprising:
-
a) a transaction chain comprising a plurality of sequenced transaction elements, wherein each transaction element has a negative delta stream input corresponding to one of the sequential plurality of negative delta streams; and b) a consumer process, connected to a trailing element of the transaction chain, and comprising an input for the updated data stream and an output for the desired prior data stream. - View Dependent Claims (45)
-
-
46. A computer programmed to merge a sequential plurality of delta streams, in a single pass, to create a compiled delta stream, the computer comprising:
-
a) a transaction chain comprising a plurality of sequenced transaction elements, wherein each transaction element has a delta stream input corresponding to one of the sequential plurality of delta streams; and b) a compiler consumer process, connected to a trailing element of the transaction chain, comprising an output for the compiled delta stream. - View Dependent Claims (47, 48)
-
-
49. A physical storage media programmed to control a computer in merging a sequential plurality of delta streams with an original data stream, in a single pass, to create an updated data stream, the media comprising:
-
a) means to produce a transaction chain comprising a plurality of sequenced transaction elements, wherein each transaction element has a delta stream input corresponding to one of the sequential plurality of delta streams; b) a consumer process comprising an input for the original data stream and an output for the updated data stream; and c) means to connect the consumer process to a trailing element of the transaction chain. - View Dependent Claims (50, 51)
-
-
52. A physical storage media programmed to control a computer in merging a sequential plurality of negative delta streams with an updated data stream, in a single pass, to create a desired prior data stream, the media comprising:
-
a) means to produce a transaction chain comprising a plurality of sequenced transaction elements, wherein each transaction element has a negative delta stream input corresponding to one of the sequential plurality of negative delta streams; b) a consumer process comprising an input for the updated data stream and an output for the previous data stream; and c) means to connect the consumer process to a trailing element of the transaction chain. - View Dependent Claims (53)
-
-
54. A physical storage media programmed to control a computer in merging a sequential plurality of delta streams, in a single pass, to create a compiled delta stream, the media comprising:
-
a) means to produce a transaction chain comprising a plurality of sequenced transaction elements, wherein each transaction element has a delta stream input corresponding to one of the sequential plurality of delta streams; b) a compiler consumer process comprising an output for the compiled delta stream; and c) means to connect the compiler consumer process to a trailing element of the transaction chain. - View Dependent Claims (55, 56)
-
Specification