Compression of data transmitted over a network
First Claim
1. A method operating on one or more network devices, comprising:
- receiving input data;
selecting a candidate input matching data segment from within the input data by sliding a window over the input data and for each of a plurality of different locations of the sliding window determining a fitness function from a portion of the input data within the sliding window and further selecting a portion of the input data having a determined best fitness function value by performing a comparison between each of the determined fitness functions;
determining a corresponding candidate store matching segment of data in a synchronized store based on an index determined from the selected candidate input matching data segment, the index being used to obtain a file identifier and offset that is then used to locate within the synchronized store the candidate store matching segment;
selectively revising at least one boundary of the candidate input matching data segment by comparing data contiguous with the candidate store matching segment with data contiguous with the candidate input matching data segment to generate an input matching data segment of the input data;
determining an encoded representation of the input matching data segment at least partly based on the synchronized store; and
transmitting over a network a data structure that includes at least a portion of an unmatched portion of the data within the input data and the encoded representation.
1 Assignment
0 Petitions
Accused Products
Abstract
A system, method, and apparatus are directed towards identifying adaptive length segments of redundant data for encoding a data structure. Initial boundaries are identified for an input matching segment within input data and for a candidate store matching segment in a synchronized store. The data prior to and after the boundaries are compared to identify matching data. As matching data is identified, at least one of the boundaries of the matching segments is revised. An encoded representation of the resulting input matching segment is then generated based in part on pointers and offsets into the synchronized store. A data structure is generated based on the encoded representation and unmatched portion, which is sent to a receiver. The receiver uses the data structure to extract matching data from the synchronized store, and together with the unmatched input data in the data structure, reconstruct the input data.
96 Citations
20 Claims
-
1. A method operating on one or more network devices, comprising:
-
receiving input data; selecting a candidate input matching data segment from within the input data by sliding a window over the input data and for each of a plurality of different locations of the sliding window determining a fitness function from a portion of the input data within the sliding window and further selecting a portion of the input data having a determined best fitness function value by performing a comparison between each of the determined fitness functions; determining a corresponding candidate store matching segment of data in a synchronized store based on an index determined from the selected candidate input matching data segment, the index being used to obtain a file identifier and offset that is then used to locate within the synchronized store the candidate store matching segment; selectively revising at least one boundary of the candidate input matching data segment by comparing data contiguous with the candidate store matching segment with data contiguous with the candidate input matching data segment to generate an input matching data segment of the input data; determining an encoded representation of the input matching data segment at least partly based on the synchronized store; and transmitting over a network a data structure that includes at least a portion of an unmatched portion of the data within the input data and the encoded representation. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A network device for use in managing a data transfer over a network, comprising:
-
a transceiver to send and receive the data over the network; and a computer processor executing a data reduction component that performs actions, including; receiving input data; selecting a candidate input matching data segment from within the input data based on using a sliding window over the input data to select a portion of the input data corresponding to a best fitness function value, wherein each fitness function value is computed from a portion of the input data within the sliding window and the best fitness function value is determined by performing a comparison between each of the plurality of computed fitness function values; determining a corresponding candidate store matching segment of data in a synchronized store based on an index determined from the selected candidate input matching data segment, the index being used to obtain a file identifier and offset into the synchronized store; selectively revising at least one boundary of the candidate input matching data segment by comparing data contiguous with the candidate store matching segment with data contiguous with the candidate input matching data segment to generate an input matching data segment of the input data; determining an encoded representation of the input matching data segment at least partly based on the synchronized store; and transmitting over the network a data structure that includes at least a portion of an unmatched portion of the data within the input data and the encoded representation. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system of managing a data transfer over a network, comprising:
-
a first network device that is configured to perform actions comprising; receiving input data; selecting a candidate input matching data segment from within the input data based on using a sliding window over the input data to select a portion of the input data corresponding to a best fitness function value, wherein each fitness function value is computed from a portion of the input data within the sliding window and the best fitness function value is determined by performing a comparison between each of the plurality of computed fitness function values; determining a corresponding candidate store matching segment of data in a synchronized store based on an index determined from the selected candidate input matching data segment, the index being used to obtain a file identifier and offset that is then used to locate within the synchronized store the candidate store matching segment; selectively revising at least one boundary of the candidate input matching data segment by comparing data contiguous with the candidate store matching segment with data contiguous with the candidate input matching data segment to generate an input matching data segment of the input data; determining an encoded representation of the input matching data segment at least partly based on the synchronized store; and transmitting over the network a data structure that includes at least a portion of an unmatched portion of the data within the input data and the encoded representation; and a second network device that is configured to perform actions comprising; receiving the transmitted data structure; employing the encoded representation in the data structure to extract, from a second synchronized store, data that matches the input matching data segment; and combining the unmatched portion of the data with the extracted data. - View Dependent Claims (17, 18, 19, 20)
-
Specification