# US 12,118,214 B2 · Storage and method for adaptive flushing in log structured storage systems

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

- Number: US 12,118,214 B2
- Document ID: US12118214B2
- Status: Granted
- Kind: B2
- Application number: 18/161,139
- Filed: 2023-01-30
- Published: 2024-08-01
- Granted: 2024-10-15
- Earliest claimed: 2023-01-30
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Vladimir Shveidel; Geng Han; Jibing Dong
- Web page: https://patentgrep.com/patent/US12118214B2

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0641: {De-duplication techniques}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method, computer program product, and computing system for monitoring data reduction information concerning a plurality of containers from a flush working set within a log memory system of a storage system, wherein the plurality of containers are associated with a storage object. An assigned working set size may be determined for a flusher based upon, at least in part, the data reduction information. The assigned working set may be generated for the flusher by adding one or more containers from the flush working set to the assigned working set based upon, at least in part, the assigned working set size. The one or more containers may be flushed, using the flusher, from the assigned working set to persistent memory within the storage system.

## Claims

### Claim 1

A computer-implemented method, executed on a computing device, comprising:
monitoring data reduction information concerning a plurality of containers from a flush working set within a log memory system of a storage system, wherein the plurality of containers are associated with a storage object;
determining an assigned working set size for a flusher based upon, at least in part, the data reduction information;
generating the assigned working set for the flusher by adding one or more containers from the flush working set to the assigned working set based upon, at least in part, the assigned working set size; and
flushing, using the flusher, the one or more containers from the assigned working set to persistent memory within the storage system.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein monitoring the data reduction information concerning the plurality of containers includes determining a total number of pages in each container associated with the storage object.

### Claim 3 (depends on 2)

The computer-implemented method of claim 2, wherein monitoring the data reduction information concerning the plurality of containers includes determining a total number of deduplicated pages in each container associated with the storage object.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein monitoring the data reduction information concerning the plurality of containers includes determining a cumulative size of compressed pages in each container associated with the storage object.

### Claim 5 (depends on 4)

The computer-implemented method of claim 4, wherein determining the assigned working set size for the flusher includes:
determining a storage object deduplication ratio based upon, at least in part, the total number of pages and the total number of deduplicated pages in each container; and
determining a storage object compression ratio based upon, at least in part, the total number of pages, the cumulative size of compressed pages, and the total number of deduplicated pages in each container.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, wherein determining the assigned working set size for the flusher includes determining a predefined persistent memory capacity associated with the assigned working set.

### Claim 7 (depends on 6)

The computer-implemented method of claim 6, wherein generating the assigned working set for the flusher includes adding containers to the assigned working set up to the predefined persistent memory capacity associated with the assigned working set.

### Claim 8

A computer program product residing on a non-transitory computer readable medium having a plurality of instructions stored thereon which, when executed by a processor, cause the processor to perform operations comprising:
monitoring data reduction information concerning a plurality of containers from a flush working set within a log memory system of a storage system, wherein the plurality of containers are associated with a storage object;
determining an assigned working set size for a flusher based upon, at least in part, the data reduction information;
generating the assigned working set for the flusher by adding one or more containers from the flush working set to the assigned working set based upon, at least in part, the assigned working set size; and
flushing, using the flusher, the one or more containers from the assigned working set to persistent memory within the storage system.

### Claim 9 (depends on 8)

The computer program product of claim 8, wherein monitoring the data reduction information concerning the plurality of containers includes determining a total number of pages in each container associated with the storage object.

### Claim 10 (depends on 9)

The computer program product of claim 9, wherein monitoring the data reduction information concerning the plurality of containers includes determining a total number of deduplicated pages in each container associated with the storage object.

### Claim 11 (depends on 10)

The computer program product of claim 10, wherein monitoring the data reduction information concerning the plurality of containers includes determining a cumulative size of compressed pages in each container associated with the storage object.

### Claim 12 (depends on 11)

The computer program product of claim 11, wherein determining the assigned working set size for the flusher includes:
determining a storage object deduplication ratio based upon, at least in part, the total number of pages and the total number of deduplicated pages in each container; and
determining a storage object compression ratio based upon, at least in part, the total number of pages, the cumulative size of compressed pages, and the total number of deduplicated pages in each container.

### Claim 13 (depends on 8)

The computer program product of claim 8, wherein determining the assigned working set size for the flusher includes determining a predefined persistent memory capacity associated with the assigned working set.

### Claim 14 (depends on 13)

The computer program product of claim 13, wherein generating the assigned working set for the flusher includes adding containers to the assigned working set up to the predefined persistent memory capacity associated with the assigned working set.

### Claim 15

A computing system comprising:
a memory; and
a processor configured to monitor data reduction information concerning a plurality of containers from a flush working set within a log memory system of a storage system, wherein the plurality of containers are associated with a storage object, wherein the processor is further configured to determine an assigned working set size for a flusher based upon, at least in part, the data reduction information, wherein the processor is further configured to generate the assigned working set for the flusher by adding one or more containers from the flush working set to the assigned working set based upon, at least in part, the assigned working set size, and wherein the processor is further configured to flush, using the flusher, the one or more containers from the assigned working set to persistent memory within the storage system.

### Claim 16 (depends on 15)

The computing system of claim 15, wherein monitoring the data reduction information concerning the plurality of containers includes determining a total number of pages in each container associated with the storage object.

### Claim 17 (depends on 16)

The computing system of claim 16, wherein monitoring the data reduction information concerning the plurality of containers includes determining a total number of deduplicated pages in each container associated with the storage object.

### Claim 18 (depends on 17)

The computing system of claim 17, wherein monitoring the data reduction information concerning the plurality of containers includes determining a cumulative size of compressed pages in each container associated with the storage object.

### Claim 19 (depends on 18)

The computing system of claim 18, wherein determining the assigned working set size for the flusher includes:
determining a storage object deduplication ratio based upon, at least in part, the total number of pages and the total number of deduplicated pages in each container; and
determining a storage object compression ratio based upon, at least in part, the total number of pages, the cumulative size of compressed pages, and the total number of deduplicated pages in each container.

### Claim 20 (depends on 19)

The computing system of claim 19, wherein determining the assigned working set size for the flusher includes determining a predefined persistent memory capacity associated with the assigned working set.
