IP Library Granted Patent US 7,793,166
Granted Patent B2
US 7,793,166 · App. 11/563,467 · Granted Sep 7, 2010

Methods and systems for recovering meta-data in a cache memory after a corruption event

Assignee: EMC Corporation
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 7,793,166
App. No.
11/563,467
Filed
Nov 27, 2006
Granted
Sep 7, 2010
Kind
B2
Art Unit
2113
USPC
714/54
Abstract

A method for recovering meta-data that has been subjected to corruption is disclosed for a cache memory. Each table entry in the cache memory has an in-cache indicator for indicating whether the data unit associated therewith is stored in a cache-slot in the cache memory. A first review is conducted of the table entries for identifying in-cache table entries (those that are associated with cache-slots in the cache memory), performing a correction attempt to ensure that the meta-data in an in-cache table entry are validated and corrected, if necessary, and ensuring that the in-cache indicator is set for an in-cache table entry. A second review is conducted of the table entries to ensure that the in-cache indicator is not set for any table entry that is not an in-cache table entry or for any in-cache table entry for which the correction attempt was unsuccessful.

Claims (91)

1. For a cache memory having meta-data organized into a plurality of table entries, and having data units stored in a plurality of cache-slots, with each of the cache-slots being arranged to be associated with one of the table entries; a method for recovering meta-data that have been subjected to corruption, comprising

providing each of the table entries with an in-cache indicator to indicate that the data unit associated therewith is stored in the cache memory;

conducting a first review of the table entries, further comprising

identifying in-cache table entries comprising the table entries that are associated with cache-slots in the cache memory,

performing a correction attempt on each of the in-cache table entries to ensure that the meta-data in each of the in-cache table entries are validated and corrected, if necessary, and

ensuring that the in-cache indicator is set for each of the in-cache table entries; and conducting a second review of the table entries, further comprising

identifying not-in-cache table entries comprising the table entries that are not associated with cache-slots in the cache memory,

identifying invalid table entries comprising the in-cache table entries for which the correction attempt was unsuccessful;

ensuring that the in-cache indicator is not set for any of the not-in-cache table entries and for any of the invalid table entries.

2. The method of claim 1 , wherein conducting the first review further comprises conducting a seriatim review of each of the cache-slots, the seriatim review further comprising

selecting a first cache-slot;

identifying a first table entry that is associated with the first cache-slot;

determining whether the first table entry is in need of repairing; and

performing a correction attempt on the first table entry to correct and verify validity of the meta-data in the first table entry when the first table entry is determined to be in need of repairing.

3. The method of claim 2 ,

wherein each of the table entries has a stored meta-data protection value and each of the cache-slots has a backup table entry comprising a backup copy of an associated table entry comprising a table entry associated therewith; and

further comprising conducting a data protection correction process to verify validity of a data protection portion of the first table entry by

calculating a test meta-data protection value from the first table entry;

comparing the test meta-data protection value and the stored meta-data protection value; and

when the test meta-data protection value and the stored meta-data protection value do not match, determining whether the backup table entry is in need of repairing; and, if the backup table is not in need of repairing, replacing the first table entry with the backup table entry.

4. The method of claim 2 ,

wherein the first table entry has a cache-slot association link comprising a pointer to one of the cache-slots to link the first table entry to the one of the cache-slots; and

further comprising conducting a lookup table correction process to verify validity of a lookup table portion of the first table entry; wherein the lookup table correction process further comprises confirming the cache-slot association link from the first table entry to the first cache-slot by

using the cache-slot association link to access the one of the cache-slots; and

replacing the cache-slot association link with a pointer to the first cache-slot when the cache-slot association link does not access the first cache-slot.

5. The method of claim 1 , wherein conducting the second review further comprises conducting a seriatim review of each of the table entries, the seriatim review further comprising selecting a first table entry;

determining whether the first table entry is in need of repairing;

ensuring that the in-cache indicator is unset for the first table entry when the first table entry is in need of repairing.

6. The method of claim 5 , wherein each of the table entries has a stored meta-data protection value; and

further comprising conducting a data protection validation process to verify validity of a data protection portion of the first table entry by

calculating a test meta-data protection value from the first table entry;

comparing the test meta-data protection value and the stored meta-data protection value; and

ensuring that the in-cache indicator is unset for the first table entry when the test meta-data protection value and the stored meta-data protection do not match.

7. The method of claim 5 ,

wherein the first table entry has a cache-slot association link comprising a pointer to one of the cache-slots to link the first table entry to the one of the cache-slots;

further comprising conducting a lookup table validation process to verify validity of a lookup table portion of the first table entry; wherein the lookup table validation process further comprises confirming the cache-slot association link from the first table entry to the first cache-slot by

using the cache-slot association link to access the one of the cache-slots; and

ensuring that the in-cache indicator is unset for the first table entry when the cache-slot association link does not access the first cache-slot.

8. The method of claim 1 , wherein each of the table entries has a data protection process associated therewith, and further comprising:

suspending the data protection process for any of the table entries for which the in-cache indicator is not set; and

deferring re-establishing the data protection process for a first table entry for which the in-cache indicator is not set until issuance of a request for an I/O operation therefor.

9. The method of claim 1 , wherein each of the table entries has a data protection process associated therewith, and further comprising:

suspending the data protection process for any of the not-in-cache table entries; and

deferring re-establishing the data protection process for a first not-in-cache table entry until issuance of a request for an I/O operation therefor.

10. The method of claim 1 , wherein each of the table entries has a data protection process associated therewith, and further comprising:

suspending the data protection process for any of the invalid table entries; and

deferring re-establishing the data protection process for a first invalid table entry until issuance of a request for an I/O operation therefor.

11. A computer program product residing on a computer readable storage medium for recovering meta-data for a computer system that have been subjected to corruption,

the computer system having a cache memory with the meta-data organized into a plurality of table entries, and with data units stored in a plurality of cache-slots, each of the cache-slots being arranged to be associated with one of the table entries;

the computer program product comprising instructions for causing a computer to:

conduct a first review of the table entries, further comprising

identifying in-cache table entries comprising the table entries that are associated with cache-slots in the cache memory,

performing a correction attempt on each of the in-cache table entries to ensure that the meta-data in each of the in-cache table entries are validated and corrected, if necessary, and

ensuring that the in-cache indicator is set for each of the in-cache table entries; and

conduct a second review of the table entries, further comprising

identifying not-in-cache table entries comprising the table entries that are not associated with cache-slots in the cache memory,

identifying invalid table entries comprising the in-cache table entries for which the correction attempt was unsuccessful;

ensuring that the in-cache indicator is not set for any of the not-in-cache table entries and for any of the invalid table entries.

12. The computer program product of claim 11 , wherein the instructions for causing a computer to conduct a first review of the table entries further comprises instructions to cause a computer to conduct a seriatim review of each of the cache-slots, the seriatim review further comprising

selecting a first cache-slot;

identifying a first table entry that is associated with the first cache-slot;

determining whether the first table entry is in need of repairing; and

performing a correction attempt on the first table entry to correct and verify validity of the meta-data in the first table entry when the first table entry is determined to be in need of repairing.

13. The computer program product of claim 11 , wherein the instructions for causing a computer to conduct a second review of the table entries further comprises instructions to cause a computer to conduct a seriatim review of each of the table entries, the seriatim review further comprising

selecting a first table entry;

determining whether the first table entry is in need of repairing;

ensuring that the in-cache indicator is unset for the first table entry when the first table entry is in need of repairing.

14. The computer program product of claim 11 , wherein each of the table entries has a data protection process associated therewith, and further comprising instructions for causing a computer to:

suspend the data protection process for any of the table entries for which the in-cache indicator is not set; and

defer re-establishing the data protection process for a first table entry for which the in-cache indicator is not set until issuance of a request for an I/O operation therefor.

15. A data storage system comprising:

a cache memory having meta-data organized into a plurality of table entries, and having data units stored in a plurality of cache-slots, each of the cache-slots being arranged to be associated with one of the table entries; and

a processor coupled to the cache memory and operable to recover meta-data that have been subjected to corruption, the processor further operable to conduct a first review of the table entries, further comprising

identifying in-cache table entries comprising the table entries that are associated with cache-slots in the cache memory,

performing a correction attempt on each of the in-cache table entries to ensure that the meta-data in each of the in-cache table entries are validated and corrected, if necessary, and

ensuring that the in-cache indicator is set for each of the in-cache table entries; and

conduct a second review of the table entries, further comprising

identifying not-in-cache table entries comprising the table entries that are not associated with cache-slots in the cache memory,

identifying invalid table entries comprising the in-cache table entries for which the correction attempt was unsuccessful;

ensuring that the in-cache indicator is not set for any of the not-in-cache table entries and for any of the invalid table entries.

16. The data storage system of claim 15 , wherein the processor being operable to conduct a first review of the table entries further comprises the processor being operable to conduct a seriatim review of each of the cache-slots, the seriatim review further comprising

selecting a first cache-slot;

identifying a first table entry that is associated with the first cache-slot;

determining whether the first table entry is in need of repairing; and

performing a correction attempt on the first table entry to correct and verify validity of the meta-data in the first table entry when the first table entry is determined to be in need of repairing.

17. The data storage system of claim 15 , wherein the processor being operable to conduct a second review of the table entries further comprises the processor being operable to conduct a seriatim review of each of the table entries, the seriatim review further comprising selecting a first table entry;

determining whether the first table entry is in need of repairing;

ensuring that the in-cache indicator is unset for the first table entry when the first table entry is in need of repairing.

18. The data storage system of claim 15 , wherein each of the table entries has a data protection process associated therewith, and further comprising the processor being operable to:

suspend the data protection process for any of the table entries for which the in-cache indicator is not set; and

defer re-establishing the data protection process for a first table entry for which the in-cache indicator is not set until issuance of a request for an I/O operation therefor.

Assignments (12)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (045455/0001) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061753/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (040136/0001) Recorded Apr 26, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO ASAP SOFTWARE EXPRESS, INC.); DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC CORPORATION (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MAGINATICS LLC); EMC IP HOLDING COMPANY LLC (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO MOZY, INC.); SCALEIO LLC
Reel/Frame 061324/0001 →
RELEASE OF SECURITY INTEREST Recorded Nov 3, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL, L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; WYSE TECHNOLOGY L.L.C.
Reel/Frame 058216/0001 →
SECURITY AGREEMENT Recorded Apr 22, 2020
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 053546/0001 →
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 Sep 29, 2016
From: EMC CORPORATION
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 040203/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 040136/0001 →
SECURITY AGREEMENT Recorded Sep 21, 2016
From: ASAP SOFTWARE EXPRESS, INC.; AVENTAIL LLC; CREDANT TECHNOLOGIES, INC.; DELL USA L.P.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL SOFTWARE INC.; DELL SYSTEMS CORPORATION; EMC CORPORATION; EMC IP HOLDING COMPANY LLC; FORCE10 NETWORKS, INC.; MAGINATICS LLC; MOZY, INC.; SCALEIO LLC; SPANNING CLOUD APPS LLC; WYSE TECHNOLOGY L.L.C.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 040134/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE ATTORNEY DOCKET NUMBER FROM 09646.0025-00000 TO 09646.0026-00000 PREVIOUSLY RECORDED ON REEL 018976 FRAME 0143. ASSIGNOR(S) HEREBY CONFIRMS THE CHANGE OF THE DOCKET NUMBER. Recorded Mar 27, 2007
From: MARGALIT, RAN
To: EMC CORPORATION
Reel/Frame 019067/0625 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 7, 2007
From: MARGALIT, RAN
To: EMC CORPORATION
Reel/Frame 018976/0143 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 28, 2006
From: BENHANOKH, ZVI G.; IVESTER, MATTHEW
To: EMC CORPORATION
Reel/Frame 018556/0990 →
Continuity (1)
Related Publication 20080126841A1 · May 29, 2008