# US 12,117,938 B1 · Bypass destaging of decrement reference count operations with delta log based architecture

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 12,117,938 B1
- Document ID: US12117938B1
- Status: Granted
- Kind: B1
- Application number: 18/210,355
- Filed: 2023-06-15
- Granted: 2024-10-15
- Earliest claimed: 2023-06-15
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Jenny Derzhavetz; Vladimir Shveidel; Michael Litvak
- Web page: https://patentgrep.com/patent/US12117938B1

## CPC

- G06F 12/0868: Data transfer between cache memory and other subsystems, e.g. storage devices or host systems
- G06F 12/0882: Page mode
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 12/0888: using selective caching, e.g. bypass
- G06F 12/0261: {using reference counting}
- G06F 2212/1016: Performance improvement
- G06F 2212/1021: Hit rate improvement
- G06F 2212/214: Solid state disk
- G06F 2212/312: In storage controller
- G06F 2212/466: Metadata, control data
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

In at least one embodiment, processing can include: determining that an inactive decref (decrement reference count) MDL (metadata log) of decref MD (metadata) updates stored in memory is unable to be destaged to a decref tier of non-volatile storage in a first destage phase of a two phase destage process; and responsive to determining that the inactive decref MDL is unable to be destaged to the decref tier, performing bypass destage processing of the inactive decref MDL, wherein said bypass destage processing includes directly applying MD updates of the inactive decref MDL to corresponding MD pages stored persistently in a MD page store and wherein said bypass destage processing omits storing the inactive decref MDL on the decref tier.

## Claims

### Claim 1

A computer-implemented method comprising:
determining that an inactive decref (decrement reference count) MDL (metadata log) of decref MD (metadata) updates stored in memory is unable to be destaged to a decref tier of non-volatile storage in a first destage phase of a two phase destage process; and
responsive to determining that the inactive decref MDL is unable to be destaged to the decref tier, performing bypass destage processing of the inactive decref MDL, wherein said bypass destage processing includes directly applying MD updates of the inactive decref MDL to corresponding MD pages stored persistently in a MD page store and wherein said bypass destage processing omits storing the inactive decref MDL on the decref tier.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein said bypass destage processing comprises:
creating an updated version of a first MD page, wherein said creating includes applying first decref MD updates to the first MD page, wherein said first decref MD updates are updates to the first MD page and are included in the inactive decref MDL being destaged by the bypass destage processing;
persistently storing the updated first MD page in a MD page store; and
subsequent to creating the updated version of the first MD page, inserting a first drop delta indicator in an active decref MDL of decref MD updates stored in memory, wherein the first drop delta indicator is inserted in a bucket B1 of the active decref MDL, wherein the bucket B1 uniquely corresponds to the first MD page, wherein the first drop delta indicator includes a first tablet ID (identifier) uniquely identifying the inactive decref MDL being destaged by the bypass destage processing.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein said creating the updated version of the first MD page includes:
applying second decref MD updates to the first MD page, wherein the second decref MD updates are included in the active decref MDL and are ingested prior to the first drop delta indicator;
applying first common MD updates to the first MD page, wherein the first common MD updates are non-decref MD updates to the first MD page which are included in an active common MDL of non-decref MD updates stored in memory;
applying second common MD updates to the first MD page, wherein the second common MD updates are non-decref MD updates to the first MD page which are included in an inactive common MDL of non-decref MD updates stored in memory; and
applying third common MD updates to the first MD page, wherein the third common MD updates are non-decref MD updates to the first MD pages which are stored in a common MDL tier of non-volatile storage.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, further comprising:
destaging the inactive common MDL using the two phase destage process including:
storing the inactive common MDL as a corresponding tablet on the common MDL tier of non-volatile storage;
aggregating MD updates from the corresponding tablet and one or more other tablets; and
applying the aggregated MD updates to one or more MD pages of the MD page store.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, wherein said creating the updated version of the first MD page includes applying all MD updates to the first MD page except MD updates stored on the decref tier.

### Claim 6 (depends on 3)

The computer-implemented method of claim 3, further comprising:
creating a revised version of the first MD page, wherein said creating includes:
reading a current version of the first MD page from the MD page store; and
applying MD updates to the first MD page, wherein said applying includes omitting application of decref MD updates to the first MD page which are ingested prior to the first drop delta indicator.

### Claim 7 (depends on 3)

The computer-implemented method of claim 3, wherein said bypass destage processing of the inactive decref MDL is aborted at a first point in time, and at a subsequent second point in time, recovery processing is performed that includes resuming bypass destage processing of the inactive decref MDL, wherein said recovery processing includes:
creating a second updated version of the first MD page without applying any decref MD updates to the first MD page;
determining whether the active decref MDL includes the first drop delta indicator with the first tablet ID uniquely identifying the inactive decref MDL being destaged by the bypass destage processing; and
responsive to determining the active decref MDL does include the first drop delta indicator with the first tablet ID uniquely identifying the inactive decref MDL being destaged by the bypass destage processing, omitting application of all decref MD updates to the second updated version of the first MD page.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein said recovery processing includes:
responsive to determining the active decref MDL does not include the first drop delta indicator with the first tablet ID uniquely identifying the inactive decref MDL being destaged by the bypass destage processing, performing first processing comprising:
applying second decref MD updates to the second updated version of the first MD page, wherein said second decref MD updates are updates to the first MD page and are included in the inactive decref MDL being destaged by the bypass destage processing;
applying third decref MD updates to the second updated version of the first MD page, wherein said third decref MD updates are updates to the first MD page and are included in the active decref MDL;
after application of the second decref MD updates and the third decref MD updates to the second updated version of the first MD page, persistently storing the second updated version of the first MD page in the MD page store; and
inserting the first drop delta indicator in the active decref MDL of decref MD updates stored in memory, wherein the first drop delta indicator is inserted in the bucket B1 of the active decref MDL, wherein the bucket B1 uniquely corresponds to the first MD page, wherein the first drop delta indicator includes the first tablet ID (identifier) uniquely identifying the inactive decref MDL being destaged by the bypass destage processing.

### Claim 9 (depends on 2)

The computer-implemented method of claim 2, further comprising:
freezing the active decref MDL thereby converting the active decref MDL to a second inactive decref MDL; and
destaging the second inactive decref MDL using the two phase destage process, wherein said destaging the second inactive decref MDL includes:
storing, in the decref tier, a second tablet corresponding to the second inactive decref MDL; and
creating a revised version of the first MD page, wherein said creating includes omitting application of decref MD updates to the first MD page which are ingested prior to the first drop delta indicator.

### Claim 10 (depends on 9)

The computer-implemented method of claim 9, wherein the omitted decref MD updates, which are not applied to the first MD page in said creating the revised version of the first MD page, include one or more decref MD updates which are included in the bucket B1 of the second tablet and which are ingested prior to the first drop delta indicator.

### Claim 11 (depends on 9)

The computer-implemented method of claim 9, wherein the omitted decref MD updates, which are not applied to the first MD page in said creating the revised version of the first MD page, include all decref MD updates of the bucket B1 of the inactive decref MDL identified by the first tablet ID of the first drop delta indicator.

### Claim 12 (depends on 1)

The computer-implemented method of claim 1, wherein each decref MD update of the inactive decref MDL decrements by one (1) a reference counter of an entry of a MD page.

### Claim 13 (depends on 12)

The computer-implemented method of claim 12, wherein the reference count is associated with first content stored on non-volatile storage and wherein the reference count denotes a number of times the first content is referenced by one or more storage objects thereby indicating that the first content is included as stored content of the one or more storage objects.

### Claim 14 (depends on 1)

The computer-implemented method of claim 1, further comprising:
receiving and servicing a write operation that writes second content to a first logical address LA1, wherein prior to the write operation, first content is stored at LA1, and after servicing the write operation, the second content is stored at LA1 whereby the write operation overwrites the first content of LA1 with the second content.

### Claim 15 (depends on 14)

The computer-implemented of claim 14, wherein the inactive decref MDL includes a first decref MD update that decrements by one (1) a first reference count of a first entry of a first MD page, wherein the first reference count denotes a number of times the first content is referenced by one or more logical addresses of one or more corresponding storage objects thereby indicating that the first content is stored at the one or more logical addresses of the one or more corresponding storage objects, and wherein the first decref MD update of the inactive decref MDL is recorded in connection with servicing the write operation.

### Claim 16 (depends on 1)

The computer-implemented method of claim 1, wherein said determining that the inactive decref MDL stored in memory is unable to be destaged to the decref tier includes determining that that the decref tier of non-volatile storage has an insufficient amount of storage capacity for storing the inactive decref MDL.

### Claim 17 (depends on 1)

The computer-implemented method of claim 1, wherein said determining that the inactive decref MDL stored in memory is unable to be destaged to the decref tier includes determining that that the decref tier of non-volatile storage is inaccessible and/or in a state of failure.

### Claim 18

A system comprising:
one or more processors; and
one or more memories comprising code stored thereon that, when executed, performs a method of comprising:
determining that an inactive decref (decrement reference count) MDL (metadata log) of decref MD (metadata) updates stored in memory is unable to be destaged to a decref tier of non-volatile storage in a first destage phase of a two phase destage process; and
responsive to determining that the inactive decref MDL is unable to be destaged to the decref tier, performing bypass destage processing of the inactive decref MDL, wherein said bypass destage processing includes directly applying MD updates of the inactive decref MDL to corresponding MD pages stored persistently in a MD page store and wherein said bypass destage processing omits storing the inactive decref MDL on the decref tier.

### Claim 19

A non-transitory computer readable medium comprising code stored thereon that, when executed, performs a method comprising:
determining that an inactive decref (decrement reference count) MDL (metadata log) of decref MD (metadata) updates stored in memory is unable to be destaged to a decref tier of non-volatile storage in a first destage phase of a two phase destage process; and
responsive to determining that the inactive decref MDL is unable to be destaged to the decref tier, performing bypass destage processing of the inactive decref MDL, wherein said bypass destage processing includes directly applying MD updates of the inactive decref MDL to corresponding MD pages stored persistently in a MD page store and wherein said bypass destage processing omits storing the inactive decref MDL on the decref tier.
