Adaptive compression using a sampling based heuristic
AssigneeSymantec Corporation
InventorsMark Vertongen, Bastiaan Stougie, Mark Christiaens
Life of this patent
Estimating the term…
Abstract
Various methods and systems for using adaptive data compression in a backup system are disclosed. One method involves detecting whether to compress a unit of storage that is to be backed up. The detecting involves attempting to compress a portion of the unit of storage. If the attempt to compress the portion of the unit of storage meets a specified compression performance threshold, i.e., if the unit of storage is compressible, the unit of storage is compressed. Otherwise the unit of storage is not compressed.
Claims18
A method comprising:
- detecting that a unit of storage from a backup client is to be backed up to a storage system;
- in response to the detecting, determining whether to compress the unit of storage,
- wherein the determining comprises
- identifying a location within the unit of storage, wherein
- the identifying comprises
- scanning the unit of storage, wherein
- the scanning comprises comparing density of data stored in
- the unit of storage with a specified data density criterion, and
- the specified data density criterion comprises a ratio of written storage location to unwritten storage locations,
- determining whether the density of the data stored at the location meets the specified data density criterion prior to attempting to compress the data stored at the location, and
- calculating an offset from the beginning of the unit of storage to the location,
- selecting a portion of the unit of storage beginning at the offset, wherein data stored in the portion of the unit of storage comprises the data stored at the location,
- the portion of the unit of storage is smaller than the unit of storage, and
- the portion of the unit of storage begins at the offset from the beginning of the unit of storage and ends before the end of the unit of storage, and
- attempting to compress the data stored in the portion of the unit of storage;
- and
- if the attempting is successful for the portion of the unit of storage, compressing the entirety of the unit of storage.
A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by one or more processors to:
- detect that a unit of storage from a backup client is to be backed up to a storage system;
- in response to the detecting, determining whether to compress the unit of storage,
- wherein the determining comprises
- identifying a location within the unit of storage, wherein
- the identifying comprises
- scanning the unit of storage, wherein
- the scanning comprises comparing density of data stored in
- the unit of storage with a specified data density criterion, and
- the specified data density criterion comprises a ratio of written storage location to unwritten storage locations,
- determining whether the density of the data stored at the location meets the specified data density criterion prior to attempting to compress the data stored at the location, and
- calculating an offset from the beginning of the unit of storage to the location,
- selecting a portion of the unit of storage beginning at the offset, wherein data stored in the portion of the unit of storage comprises the data stored at the location,
- the portion of the unit of storage is smaller than the unit of storage, and
- the portion of the unit of storage begins at the offset from the beginning of the unit of storage and ends before the end of the unit of storage, and
- attempting to compress the data stored in the portion of the unit of storage;
- and
- if the attempting is successful for the portion of the unit of storage, compressing the entirety of the unit of storage.
A system comprising:
- a storage system;
- one or more processing means coupled to the storage system;
- a backup client coupled to the storage system, the backup client comprising
- means for detecting that a unit of storage is to be backed up;
- means for determining whether to compress the unit of storage, wherein the determining is performed in response to the detecting and the determining comprises
- identifying a location within the unit of storage, wherein
- the identifying comprises
- scanning the unit of storage, wherein
- the scanning comprises comparing density of data stored in the unit of storage with a specified data density criterion, and
- the specified data density criterion comprises a ratio of written storage locations to unwritten storage locations,
- determining whether the density of the data stored at the location meets the specified data density criterion prior to attempting to compress the data stored at the location, and
- calculating an offset from the beginning of the unit of storage,
- selecting a portion of the unit of storage beginning at the offset, wherein
- data stored in the portion of the unit of storage comprises the data stored at the location,
- the portion of the unit of storage is smaller than the unit of storage, and
- the portion of the unit of storage begins at the offset from the beginning of the unit of storage and ends before the end of the unit of storage, and
- attempting to compress the data stored in the portion of the unit of storage;
- and
- means for compressing the entirety of the unit of storage if the determining means indicates that the attempting is successful for the portion of the unit of storage.
Dependencies are inferred from the claim text.