Storing data utilizing repeating pattern detection
First Claim
1. A computer system comprising:
- a data storage device; and
a data storage controller coupled to the data storage device;
wherein the data storage controller is configured to receive a write request to store write data to the data storage device, wherein the write data includes pattern data and non-pattern data; and
in response to receiving the write request,detect, within the pattern data, whether a number of contiguous instances of a bit pattern is above a predefined threshold;
in response to detecting that the number of contiguous instances of the bit pattern is above the predefined threshold, instead of storing the pattern data within the data storage device, store within a mapping table of the data storage controller, a first entry that includes the bit pattern and the number of contiguous instances of the bit pattern;
store the non-pattern data within the data storage device; and
store, within the mapping table, one or more entries that each include a pointer to a location within the data storage device where the non-pattern data is stored.
1 Assignment
0 Petitions
Accused Products
Abstract
A system and method for efficiently storing data in a storage system. A data storage subsystem includes multiple data storage locations on multiple storage devices in addition to at least one mapping table. A data storage controller determines whether data to store in the storage subsystem has one or more patterns of data intermingled with non-pattern data within an allocated block. Rather than store the one or more pattern on the storage devices, the controller stores information in a header on the storage devices. The information includes at least an offset for the first instance of a pattern, a pattern length, and an identification of the pattern. The data may be reconstructed for a corresponding read request from the information stored in the header.
-
Citations
14 Claims
-
1. A computer system comprising:
-
a data storage device; and a data storage controller coupled to the data storage device; wherein the data storage controller is configured to receive a write request to store write data to the data storage device, wherein the write data includes pattern data and non-pattern data; and
in response to receiving the write request,detect, within the pattern data, whether a number of contiguous instances of a bit pattern is above a predefined threshold; in response to detecting that the number of contiguous instances of the bit pattern is above the predefined threshold, instead of storing the pattern data within the data storage device, store within a mapping table of the data storage controller, a first entry that includes the bit pattern and the number of contiguous instances of the bit pattern; store the non-pattern data within the data storage device; and store, within the mapping table, one or more entries that each include a pointer to a location within the data storage device where the non-pattern data is stored. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A method for use in a storage system, the method comprising:
-
by a data storage controller coupled to a data storage device; receiving a write request to store write data to the data storage device, wherein the write data includes pattern data and non-pattern data; and in response to receiving the write request, detecting, within the pattern data, whether a number of contiguous instances of a bit pattern is above a predefined threshold; in response to detecting that the number of contiguous instances of the bit pattern is above the predefined threshold, instead of storing the pattern data within the data storage device, storing within a mapping table of the data storage controller, a first entry that includes the bit pattern and the number of contiguous instances of the bit pattern; storing the non-pattern data within the data storage device; and storing, within the mapping table, one or more entries that each include a pointer to a location within the data storage device where the non-pattern data is stored. - View Dependent Claims (7, 8, 9, 10)
-
-
11. A non-transitory computer readable storage medium storing program instruction executable by a processor to:
-
by a data storage controller coupled to a data storage device; receive a write request to store write data to the data storage device, wherein the write data includes pattern data and non-pattern data; and in response to receiving the write request, detect, within the pattern data, whether a number of contiguous instances of a bit pattern is above a predefined threshold; in response to detecting that the number of contiguous instances of the bit pattern is above the predefined threshold, instead of storing the pattern data within the data storage device, store within a mapping table of the data storage controller, a first entry that includes the bit pattern and the number of contiguous instances of the bit pattern; store the non-pattern data within the data storage device; and store, within the mapping table, one or more entries that each include a pointer to a location within the data storage device where the non-pattern data is stored. - View Dependent Claims (12, 13, 14)
-
Specification