IP Library Granted Patent US 11,709,822
Granted Patent B2
US 11,709,822 · App. 16/887,697 · Granted Jul 25, 2023

Managing datapath validation on per-transaction basis

Inventors: Vamsi K. Vankamamidi (Hopkinton, MA); Geng Han (Beijing, CN); Xinlei Xu (Beijing, CN); Philippe Armangau (Acton, MA); Vikram Prabhakar (Cary, NC)
Assignee: EMC IP Holding Company LLC
G06F16/2379G06F11/1423G06F12/121G06F16/1865G06F2212/608
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 11,709,822
App. No.
16/887,697
Granted
Jul 25, 2023
Kind
B2
Abstract

A technique for managing a datapath of a data storage system includes receiving a request to access target data and creating a transaction that includes multiple datapath elements in a cache, where the datapath elements are used for accessing the target data. In response to detecting that one of the datapath elements is invalid, the technique further includes processing the transaction in a rescue mode. The rescue mode attempts to replace each invalid datapath element of the transaction with a valid version thereof obtained from elsewhere in the data storage system. The technique further includes committing the transaction as processed in the rescue mode.

Claims (32)

1. A method of managing a datapath of a data storage system, the method comprising:

receiving a request to access target data;

creating a transaction that includes multiple datapath elements in a cache, the datapath elements used for accessing the target data;

in response to detecting that one of the datapath elements is invalid, processing the transaction in a rescue mode, the rescue mode checking the datapath elements in the transaction for validity and attempting to replace each invalid datapath element of the transaction with a valid version thereof obtained from elsewhere in the data storage system; and

committing the transaction as processed in the rescue mode.

2. The method of claim 1 , wherein attempting to replace the invalid datapath element with a valid version includes checking for the valid version in a non-volatile store of the data storage system.

3. The method of claim 2 , wherein the non-volatile store is configured as a mirror having two sides, and wherein the method further comprises checking both sides of the mirror for the valid version.

4. The method of claim 3 , wherein the method further comprises, upon detecting that one side of the mirror stores the valid version but the other side of the mirror does not, updating the other side of the mirror so that it also contains the valid version.

5. The method of claim 2 wherein, upon replacing valid datapath element of the transaction with the valid version, the method further comprises marking the datapath element as dirty in the cache.

6. The method of claim 5 , wherein the cache is a first cache disposed in a first processor node, the data storage system also including a second cache disposed in a second processor node, and wherein the method further comprises, upon replacing the invalid datapath element with the valid version, evicting a corresponding datapath element from the second cache.

7. The method of claim 1 , wherein the cache is a first cache disposed in a first processor node, the data storage system also including a second cache disposed in a second processor node, and wherein attempting to replace the invalid datapath element with a valid version includes checking for the valid version in the second cache.

8. The method of claim 7 wherein, upon determining that the second cache contains the valid version of the datapath element, the method further comprises marking the datapath element in the second cache as dirty.

9. The method of claim 1 , wherein the cache is a first cache disposed in a first processor node, the data storage system also including a second cache disposed in a second processor node, and wherein the method further comprises, upon determining that a particular datapath element of the transaction is invalid, evicting the datapath element from the first cache and evicting a corresponding datapath element from the second cache.

10. The method of claim 1 , wherein processing the transaction in the rescue mode does not correct all invalid datapath elements of the transaction, and wherein the method further comprises executing an error handler to manage the uncorrected datapath elements.

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

receive a request to access target data;

create a transaction that includes multiple datapath elements in a cache, the datapath elements used for accessing the target data;

in response to detecting that one of the datapath elements is invalid, process the transaction in a rescue mode, the rescue mode checking the datapath elements in the transaction for validity and attempting to replace each invalid datapath element of the transaction with a valid version thereof obtained from elsewhere in the data storage system; and

commit the transaction as processed in the rescue mode.

12. 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 computerized apparatus to perform a method of managing a datapath, the method comprising:

receiving a request to access target data;

creating a transaction that includes multiple datapath elements in a cache, the datapath elements used for accessing the target data;

in response to detecting that one of the datapath elements is invalid, processing the transaction in a rescue mode, the rescue mode checking the datapath elements in the transaction for validity and attempting to replace each invalid datapath element of the transaction with a valid version thereof obtained from elsewhere in the data storage system; and

committing the transaction as processed in the rescue mode.

13. The computer program product of claim 12 , wherein attempting to replace the invalid datapath element with a valid version includes checking for the valid version in a non-volatile store of the data storage system.

14. The computer program product of claim 13 , wherein the non-volatile store is configured as a mirror having two sides, and wherein the method further comprises checking both sides of the mirror for the valid version.

15. The computer program product of claim 14 , wherein the method further comprises, upon detecting that one side of the mirror stores the valid version but the other side of the mirror does not, updating the other side of the mirror so that it also contains the valid version.

16. The computer program product of claim 13 wherein, upon replacing valid datapath element of the transaction with the valid version, the method further comprises marking the datapath element as dirty in the cache.

17. The computer program product of claim 16 , wherein the cache is a first cache disposed in a first processor node, the data storage system also including a second cache disposed in a second processor node, and wherein the method further comprises, upon replacing the invalid datapath element with the valid version, evicting a corresponding datapath element from the second cache.

18. The computer program product of claim 12 , wherein the cache is a first cache disposed in a first processor node, the data storage system also including a second cache disposed in a second processor node, and wherein attempting to replace the invalid datapath element with a valid version includes checking for the valid version in the second cache.

19. The computer program product of claim 18 wherein, upon determining that the second cache contains the valid version of the datapath element, the method further comprises marking the datapath element in the second cache as dirty.

20. The computer program product of claim 12 , wherein the cache is a first cache disposed in a first processor node, the data storage system also including a second cache disposed in a second processor node, and wherein the method further comprises, upon determining that a particular datapath element of the transaction is invalid, evicting the datapath element from the first cache and evicting a corresponding datapath element from the second cache.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053574/0221) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053578/0183) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060332/0864 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053573/0535) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 060333/0106 →
RELEASE OF SECURITY INTEREST AT REEL 053531 FRAME 0108 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0371 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053578/0183 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053573/0535 →
SECURITY INTEREST Recorded Aug 21, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 053574/0221 →
SECURITY AGREEMENT Recorded Aug 18, 2020
From: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 053531/0108 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 14, 2020
From: VANKAMAMIDI, VAMSI K.; HAN, GENG; XU, XINLEI; ARMANGAU, PHILIPPE; PRABHAKAR, VIKRAM
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 053200/0068 →