IP Library Granted Patent US 11,868,256
Granted Patent B2
US 11,868,256 · App. 17/380,610 · Granted Jan 9, 2024

Techniques for metadata updating and retrieval

Inventors: Philip Love (Goleta, CA); Vladimir Shveidel (Pardes-Hana, IL); Bar David (Rishon Lezion, IL)
Assignee: EMC IP Holding Company LLC
G06F12/0804G06F16/2358
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,868,256
App. No.
17/380,610
Granted
Jan 9, 2024
Kind
B2
Abstract

Processing a read request to read metadata from an entry of a metadata page may include: determining whether the metadata page is cached; responsive to determining the metadata page is cached, obtaining the first metadata from the cached metadata page; responsive to determining the metadata page is not cached, determining whether the requested metadata is in a metadata log of metadata changes stored in a volatile memory; and responsive to determining the metadata is the metadata log of metadata changes stored in the volatile memory, obtaining the requested metadata from the metadata log. Processing a write request that overwrites an existing value of a metadata page with an updated value may include: recording a metadata change in the metadata log that indicates to update the metadata page with the updated value; and performing additional processing during destaging that uses the existing value prior to overwriting it with the updated value.

Claims (56)

1. A computer-implemented method comprising:

receiving a write request to update second metadata from a second entry of a second metadata page;

recording a first metadata change in a metadata log, wherein the first metadata change indicates to update the second entry of the second metadata page with the second metadata as an updated value; and

performing first processing to destage the first metadata change from the metadata log, wherein the first processing to destage the first metadata change from the metadata log includes:

determining whether the first metadata change overwrites an existing value of the second entry of the second metadata page where the existing value is needed in performing second processing prior to overwriting the existing value with the second metadata as the updated value; and

responsive to determining that the first metadata change overwrites an existing value of the second entry of the second metadata page where the existing value is needed in performing said second processing prior to overwriting the existing value with the second metadata as the updated value, performing said second processing comprising:

reading from non-volatile storage a stored version of the second metadata page;

obtaining, from the stored version of the second metadata page, the existing value of the second entry of the second metadata page;

performing third processing using the existing value of the second entry of the second metadata page; and

after completing the third processing, applying one or more metadata changes to the second metadata page, wherein the one or more metadata changes include the first metadata change that overwrites the existing value of the second entry of the second metadata page with the second metadata.

2. The computer-implemented method of claim 1 , further comprising:

receiving a read request to read first metadata from a first entry of a first metadata page;

determining whether the first metadata page is included in a cache;

responsive to determining the first metadata page is included in the cache, obtaining the first metadata from a cached copy of the first metadata page included in the cache and returning the first metadata;

responsive to determining the first metadata page is not included in the cache, determining whether the first metadata is included in the metadata log of metadata changes stored in a volatile memory; and

responsive to determining the first metadata is included in the metadata log of metadata changes stored in the volatile memory, obtaining the first metadata from the metadata log and returning the first metadata.

3. The computer-implemented method of claim 2 , wherein the metadata log of metadata changes includes an active set of buckets of metadata changes, wherein each of the buckets of the active set is uniquely associated with a different one of a plurality of metadata pages.

4. The computer-implemented method of claim 3 , wherein determining whether the first metadata is included in a metadata log of metadata changes stored in the volatile memory includes:

mapping a first index uniquely identifying the first metadata page to a first bucket of the active set; and

searching the first bucket for a recorded metadata change including the first metadata.

5. The computer-implemented method of claim 4 , wherein the first entry is one of a plurality of entries included in the first metadata page.

6. The computer-implemented method of claim 2 , wherein the metadata change log records first metadata changes made to a plurality of metadata pages and wherein each of the first metadata changes is represented as a tuple including a logical index uniquely identifying one of the plurality of metadata pages, an entry index identifying an entry in said one metadata page, a type indicating a type of metadata change or update, and a new metadata value to be stored in the entry identified by the logical index and the entry index of the tuple.

7. The computer-implemented method of claim 2 , further comprising:

responsive to determining the first metadata is not included in the metadata log of metadata changes stored in the volatile memory, constructing a latest version of the first metadata page.

8. The computer-implemented method of claim 7 , wherein constructing the latest version of the first metadata page includes:

retrieving a stored version of the first metadata page from non-volatile backend storage; and

applying first metadata changes to the stored version of the first metadata page.

9. The computer-implemented method of claim 8 , wherein the first metadata changes include one or more metadata changes of the metadata log stored in the volatile memory.

10. The computer-implemented method of claim 8 , wherein the first metadata changes include one or more metadata changes of the metadata log that have been destaged from the metadata log and stored in the volatile memory to non-volatile storage.

11. The computer-implemented method of claim 1 , wherein the first metadata change overwrites a first pointer or address with a second pointer or address, wherein the first pointer or address is used to reference a first data block storing first user data, and wherein the second pointer or address is used to reference a second data block storing second user data.

12. The computer-implemented method of claim 11 , wherein the first pointer or address is used to indirectly reference the first data block storing first user data, and wherein the second pointer or address is used to indirectly reference the second data block storing second user data.

13. The computer-implemented method of claim 11 , wherein the first metadata change is one of a plurality of metadata changes recorded in the metadata log stored in the virtual memory in response to receiving a write I/O operation from a host.

14. The computer-implemented method of claim 13 , wherein the write I/O writes the second user data to a target logical address, the first user data is stored at a target logical address prior to performing the write I/O, and the write I/O overwrites the first user data stored at the target logical address with the second user data.

15. The computer-implemented method of claim 14 , wherein the third processing includes using the first pointer or address to access a reference count associated with the first data block and decrementing the reference count associated with the first data block.

16. A system comprising:

one or more processors; and

one or more memories comprising code stored thereon that, when executed, performs a method of comprising:

receiving a write request to update second metadata from a second entry of a second metadata page;

recording a first metadata change in a metadata log, wherein the first metadata change indicates to update the second entry of the second metadata page with the second metadata as an updated value; and

performing first processing to destage the first metadata change from the metadata log, wherein the first processing to destage the first metadata change from the metadata log includes:

determining whether the first metadata change overwrites an existing value of the second entry of the second metadata page where the existing value is needed in performing second processing prior to overwriting the existing value with the second metadata as the updated value; and

responsive to determining that the first metadata change overwrites an existing value of the second entry of the second metadata page where the existing value is needed in performing said second processing prior to overwriting the existing value with the second metadata as the updated value, performing said second processing comprising:

reading from non-volatile storage a stored version of the second metadata page;

obtaining, from the stored version of the second metadata page, the existing value of the second entry of the second metadata page;

performing third processing using the existing value of the second entry of the second metadata page; and

after completing the third processing, applying one or more metadata changes to the second metadata page, wherein the one or more metadata changes include the first metadata change that overwrites the existing value of the second entry of the second metadata page with the second metadata.

17. A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method comprising:

receiving a write request to update second metadata from a second entry of a second metadata page;

recording a first metadata change in a metadata log, wherein the first metadata change indicates to update the second entry of the second metadata page with the second metadata as an updated value; and

performing first processing to destage the first metadata change from the metadata log, wherein the first processing to destage the first metadata change from the metadata log includes:

determining whether the first metadata change overwrites an existing value of the second entry of the second metadata page where the existing value is needed in performing second processing prior to overwriting the existing value with the second metadata as the updated value; and

responsive to determining that the first metadata change overwrites an existing value of the second entry of the second metadata page where the existing value is needed in performing said second processing prior to overwriting the existing value with the second metadata as the updated value, performing said second processing comprising:

reading from non-volatile storage a stored version of the second metadata page;

obtaining, from the stored version of the second metadata page, the existing value of the second entry of the second metadata page;

performing third processing using the existing value of the second entry of the second metadata page; and

after completing the third processing, applying one or more metadata changes to the second metadata page, wherein the one or more metadata changes include the first metadata change that overwrites the existing value of the second entry of the second metadata page with the second metadata.

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 Jul 20, 2021
From: LOVE, PHILIP; SHVEIDEL, VLADIMIR; DAVID, BAR
To: EMC IP HOLDING COMPANY LLC
Reel/Frame 056916/0742 →
Continuity (1)
Related Publication 20230026819A1 · Jan 26, 2023
Cited By (1)
US 12,277,338