# US 12,182,175 B2 · Update-correlations based overwrite mechanism

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

- Number: US 12,182,175 B2
- Document ID: US12182175B2
- Status: Granted
- Kind: B2
- Application number: 18/181,738
- Filed: 2023-03-10
- Published: 2024-06-27
- Granted: 2024-12-31
- Earliest claimed: 2022-12-21
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Weilan Pu; Jie Wang; Jian Kang
- Web page: https://patentgrep.com/patent/US12182175B2

## CPC

- G06F 16/285: {Clustering or classification}
- G06F 16/2246: {Trees, e.g. B+trees}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

An information handling system acquires data chunks for a duration of at least one time slice, determines an overwrite frequency for the duration of the time slice of each of the data chunks, clusters the data chunks according to the overwrite frequency, and determines an overwrite frequency label for each cluster of the data chunks. The system may also determine a read frequency for the duration of the time slice of each of the data chunks, cluster the data chunks based on the read frequency, and determine a read frequency label for each of the cluster of the data chunks. The system may also construct a sorted tree based on the overwrite frequency label, the read frequency label, and a virtual logical block address of each of the data chunks.

## Claims

### Claim 1

A method comprising:
acquiring, by a processor, a plurality of data chunks with a duration of at least one time slice;
determining an overwrite frequency for the duration of the time slice of each of the data chunks, clustering the data chunks based on the overwrite frequency, and determining an overwrite frequency label for each cluster of the data chunks;
determining a read frequency for the duration of the time slice of each of the data chunks, clustering the data chunks based on the read frequency, and determining a read frequency label for each cluster of the data chunks; and
constructing a sorted tree based on the overwrite frequency label, the read frequency label, and a virtual logical block address of each of the data chunks, wherein a first index of a first parent node in a first level of the sorted tree is based on the overwrite frequency label, and wherein a second index of a second parent node in a second level of the sorted tree is based on the read frequency label.

### Claim 2 (depends on 1)

The method of claim 1, wherein the data chunks with same values for the overwrite frequency label and the read frequency label are included in one leaf node.

### Claim 3 (depends on 1)

The method of claim 1, wherein the data chunks with same values for the overwrite frequency label are included in neighbor leaf nodes.

### Claim 4 (depends on 1)

The method of claim 1, wherein the sorted tree is used to group the data chunks based on the overwrite frequency label and the read frequency label.

### Claim 5 (depends on 1)

The method of claim 1, wherein the overwrite frequency is a number of times that a data chunk has been overwritten for the duration of the time slice.

### Claim 6 (depends on 1)

The method of claim 1, wherein the read frequency is a number of times that a data chunk has been read for the duration of the time slice.

### Claim 7 (depends on 1)

The method of claim 1, wherein a leaf node of the sorted tree includes one or more data chunks that are sorted according to the virtual logical block address.

### Claim 8

An information handling system, comprising:
a processor; and
a memory storing instructions that when executed cause the processor to perform operations including:
acquiring a plurality of data chunks for a duration of at least one time slice;
determining an overwrite frequency for the duration of the time slice of each of the data chunks, clustering the data chunks according to the overwrite frequency, and determining an overwrite frequency label for each cluster of the data chunks;
determining a read frequency for the duration of the time slice of each of the data chunks, clustering the data chunks based on the read frequency, and determining a read frequency label for each of the cluster of the data chunks; and
constructing a sorted tree based on the overwrite frequency label, the read frequency label, and a virtual logical block address of each of the data chunks, wherein a first index of a first parent node in a first level of the sorted tree is based on the overwrite frequency label, and wherein a second index of a second parent node in a second level of the sorted tree is based on the read frequency label.

### Claim 9 (depends on 8)

The information handling system of claim 8, wherein the data chunks with same values for the overwrite frequency label and the read frequency label are included in one leaf node.

### Claim 10 (depends on 8)

The information handling system of claim 8, wherein the data chunks with same values for the overwrite frequency label are included in neighbor leaf nodes.

### Claim 11 (depends on 8)

The information handling system of claim 8, wherein the sorted tree is used to group the data chunks based on the overwrite frequency label and the read frequency label.

### Claim 12 (depends on 8)

The information handling system of claim 8, wherein the overwrite frequency is a number of times that a data chunk has been overwritten for the duration of the time slice.

### Claim 13 (depends on 8)

The information handling system of claim 8, wherein the read frequency is a number of times that a data chunk has been read for the duration of the time slice.

### Claim 14 (depends on 8)

The information handling system of claim 8, wherein a leaf node of the sorted tree includes one or more data chunks that are sorted according to the virtual logical block address.

### Claim 15

A non-transitory computer-readable medium to store instructions that are executable to perform operations comprising:
acquiring a plurality of data chunks for a duration of at least one time slice;
determining an overwrite frequency for the duration of the time slice of each of the data chunks, clustering the data chunks according to the overwrite frequency, and determining an overwrite frequency label for each cluster of the data chunks;
determining a read frequency for the duration of the time slice of each of the data chunks, clustering the data chunks based on the read frequency, and determining a read frequency label for each of the cluster of the data chunks; and
constructing a sorted tree based on the overwrite frequency label, the read frequency label, and a virtual logical block address of each of the data chunks, wherein a first index of a first parent node in a first level of the sorted tree is based on the overwrite frequency label, and wherein a second index of a second parent node in a second level of the sorted tree is based on the read frequency label.

### Claim 16 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the virtual logical block address of each of the data chunks with same values for the overwrite frequency label and the read frequency label are included in one leaf node.

### Claim 17 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the virtual logical block address of each of the data chunks with same values for the overwrite frequency label are included in neighbor leaf nodes.

### Claim 18 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the sorted tree is used to group the data chunks based on the overwrite frequency label and the read frequency label.

### Claim 19 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the overwrite frequency is a number of times that a data chunk has been overwritten for the duration of the time slice.

### Claim 20 (depends on 15)

The non-transitory computer-readable medium of claim 15, wherein the read frequency is a number of times that a data chunk has been read for the duration of the time slice.
