IP Library Granted Patent US 10,268,381
Granted Patent B1
US 10,268,381 · App. 15/798,580 · Granted Apr 23, 2019

Tagging write requests to avoid data-log bypass and promote inline deduplication during copies

View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,268,381
App. No.
15/798,580
Granted
Apr 23, 2019
Kind
B1
Abstract

A storage technique includes selectively tagging a set of write requests by applying tags to write requests that are pursuant to copy operations and not applying tags to at least some write requests that are not pursuant to copy operations. For each of the set of write requests, the technique further includes performing a decision operation configured to (i) direct the write request down a first processing path that supports inline deduplication in response to the write request satisfying a set of criteria and (ii) direct the write request down a second processing path that does not support inline deduplication in response to the write request failing to satisfy the set of criteria. The set of criteria include whether the write request has a tag applied, such that the decision operation preferentially directs write requests down the first processing path in response to the write requests being tagged.

Claims (35)

1. A method of performing writes in a data storage system, the method comprising:

selectively tagging a set of write requests by applying highly deduplicable (HD) tags to write requests that are pursuant to copy operations and not applying HD tags to at least some write requests that are not pursuant to copy operations;

for each of the set of write requests, performing a decision operation configured to (i) direct the write request down a first processing path that supports inline deduplication in response to the write request satisfying a set of criteria and (ii) direct the write request down a second processing path that does not support inline deduplication in response to the write request failing to satisfy the set of criteria, the set of criteria including whether the write request has an HD tag, such that the decision operation preferentially directs write requests down the first processing path in response to the write requests having HD tags; and

directing each of the set of write requests down one of the first processing path and the second processing path based on whether the respective write request satisfies the set of criteria.

2. The method of claim 1 , wherein directing each of the set of write requests down one of the first processing path and the second processing path includes directing a first write request down the first processing path by storing a first set of data specified by the first write request in a data log, the data log configured to flush the first set of data to a file system.

3. The method of claim 2 , wherein directing each of the set of write requests down one of the first processing path and the second processing path includes directing a second write request down the second processing path by bypassing the data log and storing a second set of data specified by the second write request in the file system, without storing the second set of data in the data log.

4. The method of claim 3 , wherein the set of criteria further includes a fullness metric that describes a level of fullness of the data log, and wherein the method further comprises the decision operation directing write requests down the second processing path based at least in part on the fullness metric.

5. The method of claim 4 , further comprising:

the decision operation directing an HD-tagged write request down the first processing path when the data log has a particular value of the fullness metric; and

the decision operation directing a non-HD-tagged write request down the second processing path when the data log has the same particular value of the fullness metric.

6. The method of claim 3 , wherein the data log is backed by a cache that includes multiple tracks, each track configured to prevent eviction of data for a respective minimum amount of time, the minimum amount of time for a first track being greater than the minimum amount of time for a second track, and wherein the method further comprises, when storing data specified by write requests in the data log, storing data specified by HD-tagged write requests in the first track of the cache.

7. The method of claim 3 , further comprising, when flushing the first set of data from the data log to the file system, performing an inline deduplication on the first set of data to avoid creating a duplicate of the first set of data in the file system.

8. A computerized apparatus, comprising control circuitry that includes a set of processing units coupled to memory, the control circuitry constructed and arranged to:

selectively tag a set of write requests by applying highly deduplicable (HD) tags to write requests that are pursuant to copy operations and not applying HD tags to at least some write requests that are not pursuant to copy operations;

for each of the set of write requests, perform a decision operation configured to (i) direct the write request down a first processing path that supports inline deduplication in response to the write request satisfying a set of criteria and (ii) direct the write request down a second processing path that does not support inline deduplication in response to the write request failing to satisfy the set of criteria, the set of criteria including whether the write request has an HD tag, such that the decision operation preferentially directs write requests down the first processing path in response to the write requests having HD tags; and

direct each of the set of write requests down one of the first processing path and the second processing path based on whether the respective write request satisfies the set of criteria.

9. The computerized apparatus of claim 8 , wherein the control circuitry constructed and arranged to direct each of the set of write requests down one of the first processing path and the second processing path is further constructed and arranged to direct a first write request down the first processing path by storing a first set of data specified by the first write request in a data log, the data log configured to flush the first set of data to a file system.

10. The computerized apparatus of claim 9 , wherein the control circuitry constructed and arranged to direct each of the set of write requests down one of the first processing path and the second processing path is further constructed and arranged to direct a second write request down the second processing path by bypassing the data log and storing a second set of data specified by the second write request in the file system, without storing the second set of data in the data log.

11. The computerized apparatus of claim 10 , wherein the set of criteria further includes a fullness metric that describes a level of fullness of the data log, and wherein the decision operation is further configured to direct write requests down the second processing path based at least in part on the fullness metric.

12. The computerized apparatus of claim 11 ,

wherein the decision operation is further configured to direct an HD-tagged write request down the first processing path when the data log has a particular value of the fullness metric; and

wherein the decision operation is further configured to direct a non-HD-tagged write request down the second processing path when the data log has the same particular value of the fullness metric.

13. The computerized apparatus of claim 10 , wherein the data log is backed by a cache that includes multiple tracks, each track configured to prevent eviction of data for a respective minimum amount of time, the minimum amount of time for a first track being greater than the minimum amount of time for a second track, and wherein, when constructed and arranged to store data specified by write requests in the data log, the control circuitry is further constructed and arranged to store data specified by HD-tagged write requests in the first track of the cache.

14. A computer program product including a set of non-transitory, computer-readable media having instructions which, when executed by control circuitry of a computerized apparatus, cause the control circuitry to perform a method for copying data, the method comprising:

selectively tagging a set of write requests by applying highly deduplicable (HD) tags to write requests that are pursuant to copy operations and not applying HD tags to at least some write requests that are not pursuant to copy operations;

for each of the set of write requests, performing a decision operation configured to (i) direct the write request down a first processing path that supports inline deduplication in response to the write request satisfying a set of criteria and (ii) direct the write request down a second processing path that does not support inline deduplication in response to the write request failing to satisfy the set of criteria, the set of criteria including whether the write request has an HD tag, such that the decision operation preferentially directs write requests down the first processing path in response to the write requests having HD tags; and

directing each of the set of write requests down one of the first processing path and the second processing path based on whether the respective write request satisfies the set of criteria.

15. The computer program product of claim 14 , wherein directing each of the set of write requests down one of the first processing path and the second processing path includes directing a first write request down the first processing path by storing a first set of data specified by the first write request in a data log, the data log configured to flush the first set of data to a file system.

16. The computer program product of claim 15 , wherein directing each of the set of write requests down one of the first processing path and the second processing path includes directing a second write request down the second processing path by bypassing the data log and storing a second set of data specified by the second write request in the file system, without storing the second set of data in the data log.

17. The computer program product of claim 16 , wherein the set of criteria further includes a fullness metric that describes a level of fullness of the data log, and wherein the method further comprises the decision operation directing write requests down the second processing path based at least in part on the fullness metric.

18. The computer program product of claim 17 , wherein the method further comprises:

the decision operation directing an HD-tagged write request down the first processing path when the data log has a particular value of the fullness metric; and

the decision operation directing a non-HD-tagged write request down the second processing path when the data log has the same particular value of the fullness metric.

19. The computer program product of claim 16 , wherein the data log is backed by a cache that includes multiple tracks, each track configured to prevent eviction of data for a respective minimum amount of time, the minimum amount of time for a first track being greater than the minimum amount of time for a second track, and wherein the method further comprises, when storing data specified by write requests in the data log, storing data specified by HD-tagged write requests in the first track of the cache.

20. The computer program product of claim 16 , wherein the method further comprises, when flushing the first set of data from the data log to the file system, performing an inline deduplication on the first set of data to avoid creating a duplicate of the first set of data in the file system.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0466) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0486 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (044535/0109) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO WYSE TECHNOLOGY L.L.C.)
Reel/Frame 060753/0414 →
RELEASE OF SECURITY INTEREST AT REEL 044535 FRAME 0001 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058298/0475 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 050724/0466 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 18, 2018
From: CARAM, BRUCE E.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044659/0814 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 10, 2018
From: ARMANGAU, PHILIPPE; SI, YINING; SEIBEL, CHRISTOPHER A.
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 044585/0611 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 044535/0109 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Nov 29, 2017
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044535/0001 →
Cited By (1)
US 12,373,114