# US 2017/0322878 A1 · Determine unreferenced page in deduplication store for garbage collection

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

- Number: US 2017/0322878 A1
- Document ID: US20170322878A1
- Status: Published application
- Kind: A1
- Application number: 15/519,921
- Filed: 2014-10-28
- Published: 2017-11-09
- Earliest claimed: 2014-10-28
- Assignees: Hewlett Packard Enterprise Development LP
- Applicants: Hewlett Packard Enterprise Development LP
- Inventors: Jin Wang; Siamak Nazari; Srinivasa D. Murthy
- Web page: https://patentgrep.com/patent/US20170322878A1

## CPC

- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 11/1004: {to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00)}
- G06F 11/1076: {Parity data used in redundant arrays of independent storages, e.g. in RAID systems}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Examples to determine an unreferenced page in a deduplication store are disclosed. In one example implementation according to aspects of the present disclosure, a cyclic redundancy check (CRC) value is calculated for a received garbage collection data request for data on a client volume. The CRC value is translated into a physical page location in a deduplication store for the client volume using a three-level table scheme. It is then determined whether a physical page in the deduplication store is unreferenced.

## Claims

### Claim 1

A non-transitory computer-readable storage medium storing instructions that, when executed by a processor, cause the processor to:
calculate cyclic redundancy check (CRC) value for a received garbage collection data request for data on a client volume;
translate the CRC value into a physical page location in a deduplication store for the client volume using a three-level table scheme; and
determine whether a physical page in the deduplication store is unreferenced based on an absence of direct references to the physical page by comparing the translated CRC value to a plurality of existing CRC values stored in the deduplication store.

### Claim 2 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, further storing instructions that, when executed by the processor, cause the processor to:
release the unreferenced physical page in the deduplication store when it is determined that an absence of direct references to the physical page in the deduplication store exists.

### Claim 3 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein it is determined that the physical page in the deduplication store is unreferenced when an absence of direct references to the physical page in the deduplication store exists.

### Claim 4 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein it is determined that the physical page in the deduplication store is not unreferenced when an absence of direct references to the physical page in the deduplication store does not exist.

### Claim 5 (depends on 1)

The non-transitory computer-readable storage medium of claim 1, wherein the determining whether a physical page in the deduplication store is unreferenced is performed iteratively.

### Claim 6

A block-based storage system comprising:
a cyclic redundancy check (CRC) module to calculate a CRC value for a received garbage collection data request for data on a client volume;
a three-level table module to translate the CRC value into a physical page location in a deduplication store for the client volume using a three-level table scheme;
a garbage collection module to determine whether a physical page in the deduplication store is unreferenced based on an absence of direct references to the physical page by comparing the translated CRC value to a plurality of existing CRC values stored in the deduplication store when the client volume is online; and
a page release module to release the unreferenced page in the deduplication store when it is determined that the physical page in the deduplication store is unreferenced.

### Claim 7 (depends on 6)

The block-based storage system of claim 6, wherein the garbage collection module iteratively performs the determining whether the physical page in the deduplication store is unreferenced.

### Claim 8 (depends on 6)

The block-based storage system of claim 6, wherein the client volume further comprises a plurality of client volumes as a distributed system.

### Claim 9 (depends on 6)

The block-based storage system of claim 6, the garbage collection module determines that the physical page in the deduplication store is unreferenced when an absence of direct references to the physical page in the deduplication store exists.

### Claim 10 (depends on 6)

The block-based storage system of claim 6, wherein the garbage collection module determines that the physical page in the deduplication store is not unreferenced an absence of direct references to the physical page in the deduplication store does not exist.

### Claim 11

A method comprising:
generating, by a computing system, a plurality of client volumes and a deduplication store based on the plurality of client volumes;
calculating, by the computing system, cyclic redundancy check (CRC) value for a received garbage collection data request for data on the plurality of client volumes;
translating, by the computing system, the CRC value into a physical page location in a deduplication store for the plurality of client volumes using three-level table scheme;
determining, by the computing system, whether a physical page in the deduplication store is unreferenced based on the translated CRC value by comparing the translated CRC value to a plurality of existing CRC values stored in the deduplication store; and
releasing, by the computing system, the unreferenced page in the deduplication store when it is determined that the physical page in the deduplication store is unreferenced.

### Claim 12 (depends on 11)

The method of claim 11, wherein the plurality of client volumes and the deduplication store remain online during the calculating, translating, determining, and releasing.

### Claim 13 (depends on 11)

The method of claim 11, wherein calculating the cyclic redundancy check value is performed by a first discrete hardware component of the computing system.

### Claim 14 (depends on 11)

The method of claim 11, wherein comparing the translated CRC value to a plurality of existing CRC values stored in the deduplication store utilizes an XOR operation.

### Claim 15 (depends on 11)

The method of claim 11, wherein translating the CRC value into a physical page location in the deduplication store using the three-level table walk includes using the CRC value as a logical block address for the three-level table walk.
