IP Library Granted Patent US 11,592,996
Granted Patent B2
US 11,592,996 · App. 17/383,732 · Granted Feb 28, 2023

Online error recovery

Inventors: Alex Soukhman (Raanana, IL); Uri Shabi (Tel Mond, IL)
Assignee: EMC IP Holding Company LLC
G06F3/0619G06F3/067G06F3/0665G06F11/0772G06F11/1435
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,592,996
App. No.
17/383,732
Granted
Feb 28, 2023
Kind
B2
Abstract

A technique for correcting errors in a data storage system operates while the data storage system remains online. The technique includes identifying an object for validation, scanning a plurality of pointers, and counting a number of pointers that point to the object. The technique further includes repairing a discrepancy between the count of pointers and a reference count stored in connection with the object.

Claims (43)

1. A method of correcting discrepancies in a data storage system, comprising:

identifying a DVS (data virtualization structure) for validation, the DVS pointing to a physical data element stored in the data storage system;

scanning a plurality of pointers that map logical data elements to DVSs, the scanning producing a count of pointers that point to the DVS; and

repairing a discrepancy between the count of pointers and a reference count stored in association with the DVS.

2. The method of claim 1 , wherein repairing the discrepancy includes updating the reference count to match the count of pointers.

3. The method of claim 1 , wherein the plurality of pointers is associated with a set of volumes hosted by the data storage system, and wherein said scanning and repairing are performed while at least one of the set of volumes remains online.

4. The method of claim 1 , wherein the plurality of pointers includes leaf pointers, wherein the data storage system further includes other pointers that point to the leaf pointers, and wherein producing the count of pointers includes counting pointers only from among the leaf pointers.

5. The method of claim 1 , further comprising, while scanning the plurality of pointers, tracking changes in the plurality of pointers made during online operation of the data storage system and adjusting the count of pointers to reflect changes in pointers already counted.

6. The method of claim 1 , wherein scanning the plurality of pointers includes marking pointers as processed once they have been scanned, and wherein the method further comprises:

receiving a request to change a pointer that points to the DVS; and

selectively decrementing the count of pointers for the DVS responsive to the pointer being marked as processed.

7. The method of claim 1 , wherein scanning the plurality of pointers includes marking pointers as processed once they have been scanned, and wherein the method further comprises:

receiving a request to change a pointer that does not point to the DVS so that it does point to the DVS; and

selectively incrementing the count of pointers for the DVS responsive to the pointer being marked as processed.

8. The method of claim 1 , further comprising (i) identifying a volume associated with the DVS and (i) identifying a second DVS associated with the volume,

wherein scanning the plurality of pointers includes producing a second count of pointers that point to the second DVS, and

wherein the method further comprises correcting a discrepancy between the second count and a second reference count stored in association with the second DVS.

9. The method of claim 8 , wherein identifying the volume associated with the DVS includes reading a volume identifier stored with a pointer that points to the DVS.

10. The method of claim 1 , wherein said scanning and correcting are performed by a software program configured to run in the data storage system in response to an administrative command.

11. The method of claim 1 , wherein identifying the DVS for validation includes:

performing a read operation to access a set of data of a volume, the read operation checking metadata of a set of DVSs traversed while accessing the set of data; and

reporting at least one of the set of DVSs as suspect based on the metadata revealing an inconsistency.

12. The method of claim 1 , wherein correcting the discrepancy includes setting the reference count stored in association with the DVS to zero, and wherein the method further comprises freeing the DVS.

13. The method of claim 1 , wherein the DVS provides data virtualization that enables the physical data element to be relocated without updating any of the plurality of pointers.

14. The method of claim 1 , wherein the DVS is one of multiple DVSs identified for validation, wherein scanning the plurality of pointers produces respective counts for the respective DVSs identified for validation, and wherein, when repairing the discrepancy, discrepancies are repaired selectively for the DVSs identified for validation.

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

identify a DVS (data virtualization structure) for validation, the DVS pointing to a physical data element stored in the computerized apparatus;

scan a plurality of pointers that map logical data elements to DVSs, the scanning producing a count of pointers that point to the DVS; and

repair a discrepancy between the count of pointers and a reference count stored in association with the DVS.

16. 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 correcting discrepancies, the method comprising:

identifying a DVS (data virtualization structure) for validation, the DVS pointing to a physical data element stored in the computerized apparatus;

scanning a plurality of pointers that map logical data elements to DVSs, the scanning producing a count of pointers that point to the DVS; and

repairing a discrepancy between the count of pointers and a reference count stored in association with the DVS.

17. The computer program product of claim 16 , wherein identifying the DVS for validation includes:

performing a read operation to access a set of data of a volume, the read operation checking metadata of a set of DVSs traversed while accessing the set of data; and

reporting at least one of the set of DVSs as suspect based on the metadata revealing an inconsistency.

18. The computer program product of claim 16 , further comprising, while scanning the plurality of pointers, tracking changes in the plurality of pointers made during online operation of the data storage system and adjusting the count of pointers to reflect changes in pointers already counted.

19. The computer program product of claim 16 , wherein scanning the plurality of pointers includes marking pointers as processed once they have been scanned, and wherein the method further comprises:

receiving a request to change a pointer that points to the DVS; and

selectively decrementing the count of pointers for the DVS responsive to the pointer being marked as processed.

20. The computer program product of claim 16 , wherein scanning the plurality of pointers includes marking pointers as processed once they have been scanned, and wherein the method further comprises:

receiving a request to change a pointer that does not point to the DVS so that it does point to the DVS; and

selectively incrementing the count of pointers for the DVS responsive to the pointer being marked as processed.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (058014/0560) 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 062022/0473 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057931/0392) 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 062022/0382 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (057758/0286) 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 061654/0064 →
SECURITY INTEREST Recorded Oct 6, 2021
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 058014/0560 →
SECURITY INTEREST Recorded Oct 6, 2021
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 057758/0286 →
SECURITY INTEREST Recorded Oct 6, 2021
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 057931/0392 →
SECURITY AGREEMENT Recorded Oct 1, 2021
From: DELL PRODUCTS, L.P.; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 057682/0830 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 15, 2021
From: SOUKHMAN, ALEX; SHABI, URI
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 057484/0843 →
Continuity (1)
Related Publication 20230029315A1 · Jan 26, 2023