# US 10,482,061 B1 · Removing invalid data from a dataset in advance of copying the dataset

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

- Number: US 10,482,061 B1
- Document ID: US10482061B1
- Status: Granted
- Kind: B1
- Application number: 15/682,618
- Filed: 2017-08-22
- Granted: 2019-11-19
- Earliest claimed: 2014-12-01
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Christopher Golden; Neil Vachharajani; David Grunwald; Scott Smith; Jianting Cao; Luke Paulsen; Ricardo Gonzalez
- Web page: https://patentgrep.com/patent/US10482061B1

## CPC

- G06F 16/128: {Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16)}
- G06F 3/0608: {Saving storage space on storage systems}
- G06F 3/0646: {Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0652: {Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F 12/08: in hierarchically structured memory systems, e.g. virtual memory systems
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Systems, methods, and computer readable storage mediums for optimizing performance in a storage system. A volume may be mapped to an anchor medium through an indirection layer. When a snapshot is taken of the volume, the allocation of a new anchor medium is delayed until a write operation targeting the volume is received. When a write operation targeting the volume is received, a new anchor medium may be allocated for only a portion of the volume corresponding to the portion of the volume which is targeted by the write operation. Also, when a snapshot is taken of the volume, read optimization operations are performed only the portions of the volume which have changed since the previous snapshot.

## Claims

### Claim 1

A method comprising:
overwriting one or more first portions of a volume, wherein one or more second portions of the volume remain unchanged;
detecting a request to perform a first operation on the volume;
performing, by a storage controller, background operations on the one or more first portions of the volume that were overwritten;
preventing, by the storage controller, background operations from being performed on the one or more second portions of the volume that remain unchanged since the previous operation; and
performing the first operation on the volume.

### Claim 2 (depends on 1)

The method of claim 1 wherein the request to perform the first operation on the volume includes a request to take a snapshot of the volume.

### Claim 3 (depends on 1)

The method of claim 1 wherein the request to perform the first operation on the volume includes a request to perform an extended copy of the volume.

### Claim 4 (depends on 1)

The method of claim 1 wherein the background operations include a read optimization operation.

### Claim 5 (depends on 1)

The method of claim 1 wherein the background operations include a garbage collection operation.

### Claim 6 (depends on 1)

The method of claim 1 wherein performing background operations on the one or more first portions of the volume causes invalid data to be removed from the volume and performing the first operation on the volume results in a copy of the volume being created, wherein the copy of the volume that is created does not include the invalid data that was removed from the volume.

### Claim 7

A system comprising:
one or more storage devices; and
a storage controller coupled to the one or more storage devices, wherein the storage controller is configured to:
overwrite one or more first portions of a volume, wherein one or more second portions of the volume remain unchanged;
detect a request to perform a first operation on the volume;
perform background operations on the one or more first portions of the volume that were overwritten;
prevent background operations from being performed on the one or more second portions of the volume that remain unchanged since the previous operation; and
perform the first operation on the volume.

### Claim 8 (depends on 7)

The system of claim 7 wherein the request to perform the first operation on the volume includes a request to take a snapshot of the volume.

### Claim 9 (depends on 7)

The system of claim 7 wherein the request to perform the first operation on the volume includes a request to perform an extended copy of the volume.

### Claim 10 (depends on 7)

The system of claim 7 wherein the background operations include a read optimization operation.

### Claim 11 (depends on 7)

The system of claim 7 wherein the background operations include a garbage collection operation.

### Claim 12 (depends on 7)

The system of claim 7 wherein performing background operations on the one or more first portions of the volume causes invalid data to be removed from the volume and performing the first operation on the volume results in a copy of the volume being created, wherein the copy of the volume that is created does not include the invalid data that was removed from the volume.

### Claim 13

A non-transitory computer readable storage medium storing program instructions, wherein the program instructions are executable by a processor to:
overwrite one or more first portions of a volume, wherein one or more second portions of the volume remain unchanged;
detect a request to perform a first operation on the volume;
perform, by a storage controller, background operations on the one or more first portions of the volume that were overwritten;
prevent, by a storage controller, background operations from being performed on the one or more second portions of the volume that remain unchanged since the previous operation; and
perform the first operation on the volume.

### Claim 14 (depends on 13)

The non-transitory computer readable storage medium of claim 13 wherein the request to perform the first operation on the volume includes a request to take a snapshot of the volume.

### Claim 15 (depends on 13)

The non-transitory computer readable storage medium of claim 13 wherein the request to perform the first operation on the volume includes a request to perform an extended copy of the volume.

### Claim 16 (depends on 13)

The non-transitory computer readable storage medium of claim 13 wherein the background operations include a read optimization operation.

### Claim 17 (depends on 13)

The non-transitory computer readable storage medium of claim 13 wherein the background operations include a garbage collection operation.

### Claim 18 (depends on 13)

The non-transitory computer readable storage medium of claim 13 wherein performing background operations on the one or more first portions of the volume causes invalid data to be removed from the volume and performing the first operation on the volume results in a copy of the volume being created, wherein the copy of the volume that is created does not include the invalid data that was removed from the volume.
