APPLYING DEDUPLICATION DIGESTS TO AVOID SAME-DATA WRITES
First Claim
Patent Images
1. A method of managing write requests in a data storage system, the method comprising:
- receiving an I/O (Input/Output) request that specifies a current extent of data to be written to a specified logical address;
collecting mapping metadata that maps the specified logical address to a corresponding storage location;
performing a dedupe-match test on the current extent, the dedupe-match test configured to (i) produce a first result in response to the current extent matching an entry in a deduplication database, and (ii) produce a second result otherwise, the deduplication database having multiple entries for respective extents of previously stored data, each entry including a reference to metadata that maps the respective extent to a respective storage location;
in response to detecting that the dedupe-match test has produced the first result, performing a metadata-match test for the current extent, the metadata-match test configured to (i) produce a Match result in response to the metadata referenced by the matching entry and the mapping metadata of the current extent pointing to a same storage location, and (ii) produce a No-Match result otherwise; and
in response to the metadata-match test producing the Match result, completing the I/O request without performing any write of the current extent to persistent storage.
4 Assignments
0 Petitions
Accused Products
Abstract
A technique for managing write requests in a data storage system checks whether newly-arriving data match previously-stored data that have been recorded in a deduplication database. If a match is found, the technique compares mapping metadata for the newly-arriving data with mapping metadata for the matching data. If both sets of metadata point to the same storage location, then the newly-arriving data is a same-data write and a new write to disk is avoided.
-
Citations
20 Claims
-
1. A method of managing write requests in a data storage system, the method comprising:
-
receiving an I/O (Input/Output) request that specifies a current extent of data to be written to a specified logical address; collecting mapping metadata that maps the specified logical address to a corresponding storage location; performing a dedupe-match test on the current extent, the dedupe-match test configured to (i) produce a first result in response to the current extent matching an entry in a deduplication database, and (ii) produce a second result otherwise, the deduplication database having multiple entries for respective extents of previously stored data, each entry including a reference to metadata that maps the respective extent to a respective storage location; in response to detecting that the dedupe-match test has produced the first result, performing a metadata-match test for the current extent, the metadata-match test configured to (i) produce a Match result in response to the metadata referenced by the matching entry and the mapping metadata of the current extent pointing to a same storage location, and (ii) produce a No-Match result otherwise; and in response to the metadata-match test producing the Match result, completing the I/O request without performing any write of the current extent to persistent storage. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12)
-
-
13. A data storage system, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to:
-
receive an I/O (Input/Output) request that specifies a current extent of data to be written to a specified logical address; collect mapping metadata that maps the specified logical address to a corresponding storage location; perform a dedupe-match test on the current extent, the dedupe-match test configured to (i) produce a first result in response to the current extent matching an entry in a deduplication database, and (ii) produce a second result otherwise, the deduplication database having multiple entries for respective extents of previously stored data, each entry including a reference to metadata that maps the respective extent to a respective storage location; in response to detecting that the dedupe-match test has produced the first result, perform a metadata-match test for the current extent, the metadata-match test configured to (i) produce a Match result in response to the metadata referenced by the matching entry and the mapping metadata of the current extent pointing to a same storage location, and (ii) produce a No-Match result otherwise; and in response to the metadata-match test producing the Match result, complete the I/O request without performing any write of the current extent to persistent storage.
-
-
14. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a data storage system, cause the control circuitry to perform a method for managing write requests, the method comprising:
-
receiving an I/O (Input/Output) request that specifies a current extent of data to be written to a specified logical address; collecting mapping metadata that maps the specified logical address to a corresponding storage location; performing a dedupe-match test on the current extent, the dedupe-match test configured to (i) produce a first result in response to the current extent matching an entry in a deduplication database, and (ii) produce a second result otherwise, the deduplication database having multiple entries for respective extents of previously stored data, each entry including a reference to metadata that maps the respective extent to a respective storage location; in response to detecting that the dedupe-match test has produced the first result, performing a metadata-match test for the current extent, the metadata-match test configured to (i) produce a Match result in response to the metadata referenced by the matching entry and the mapping metadata of the current extent pointing to a same storage location, and (ii) produce a No-Match result otherwise; and in response to the metadata-match test producing the Match result, completing the I/O request without performing any write of the current extent to persistent storage. - View Dependent Claims (15, 16, 17, 18, 19, 20)
-
Specification