Systems and methods for identifying long matches of data in a compression history
First Claim
1. A method of determining whether to perform compression by identifying in an index maintained in memory an estimated extent of a match of input data to contiguous data stored is above or below a predetermined threshold, the method comprising the steps of:
- (a) establishing, by a device having a compression history in storage, an index in memory that corresponds fingerprints of a plurality of portions of data of the compression history to location identifiers identifying locations in storage having the plurality of portions of data;
(b) identifying, by the device, a number of fingerprints of input data match fingerprints of a plurality of indices of the index in memory; and
(c) determining, by the device, from the number of identified fingerprints in memory having indices corresponding to a first location identifier that an estimated match of input data to contiguous data in storage is extendable below a predetermined threshold.
8 Assignments
0 Petitions
Accused Products
Abstract
Systems and methods of storing previously transmitted data and using it to reduce bandwidth usage and accelerate future communications are described. By using algorithms to identify long compression history matches, a network device may improve compression efficiently and speed. A network device may also use application specific parsing to improve the length and number of compression history matches. Further, by sharing compression histories, compression history indexes and caches across multiple devices, devices can utilize data previously transmitted to other devices to compress network traffic. Any combination of the systems and methods may be used to efficiently find long matches to stored data, synchronize the storage of previously sent data, and share previously sent data among one or more other devices.
-
Citations
35 Claims
-
1. A method of determining whether to perform compression by identifying in an index maintained in memory an estimated extent of a match of input data to contiguous data stored is above or below a predetermined threshold, the method comprising the steps of:
-
(a) establishing, by a device having a compression history in storage, an index in memory that corresponds fingerprints of a plurality of portions of data of the compression history to location identifiers identifying locations in storage having the plurality of portions of data; (b) identifying, by the device, a number of fingerprints of input data match fingerprints of a plurality of indices of the index in memory; and (c) determining, by the device, from the number of identified fingerprints in memory having indices corresponding to a first location identifier that an estimated match of input data to contiguous data in storage is extendable below a predetermined threshold. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17)
-
-
18. In a network environment including an appliance intercepting and forwarding communications between a client requesting objects and a server responding to client requests, the appliance determining whether to perform compression by identifying in an index maintained in memory an estimated extent of a match of input data to contiguous data stored is above or below a predetermined threshold, the appliance comprising:
-
a compression history in a storage device; an index in memory that corresponds fingerprints of a plurality of portions of data of the compression history to location identifiers identifying locations on the storage device having the plurality of portions of data; and a compression engine identifying a number of fingerprints of input data match fingerprints of a plurality of indices of the index in memory;
the compression engine determining from the number of identified fingerprints in memory having indices corresponding to a first location identifier that an estimated match of input data to contiguous data in the storage device is extendable below a predetermined threshold. - View Dependent Claims (19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35)
-
Specification