# US 12,182,014 B2 · Cost effective storage management

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

- Number: US 12,182,014 B2
- Document ID: US12182014B2
- Status: Granted
- Kind: B2
- Application number: 17/732,223
- Filed: 2022-04-28
- Published: 2022-08-25
- Granted: 2024-12-31
- Earliest claimed: 2015-11-02
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Chad Monteith
- Web page: https://patentgrep.com/patent/US12182014B2

## CPC

- G06F 3/0643: {Management of files}
- G06F 12/0253: {Garbage collection, i.e. reclamation of unreferenced memory}
- G06F 3/0608: {Saving storage space on storage systems}
- 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 9/30079: {Pipeline control instructions, e.g. multicycle NOP}
- G06F 12/084: with a shared cache
- G06F 16/1748: {De-duplication implemented within the file system, e.g. based on file segments (de-duplication techniques in storage systems for the management of data blocks G06F3/0641)}
- G06F 16/182: Distributed file systems
- G06F 16/188: Virtual file systems
- G06F 2212/154: Networked environment
- G06F 2212/7205: Cleaning, compaction, garbage collection, erase control
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Cost-effective storage management including identifying, by a remote storage consumer, one or more of portions of one or more source objects stored at a remote storage resources; issuing, by the remote storage consumer, a command to the remote storage resources configured to cause the remote storage resources to create a new object comprising the one or more of portions of the one or more source objects; and updating, at the remote storage consumer, a mapping data structure to reference the new object.

## Claims

### Claim 1

A method comprising:
identifying, by a processing device of a consumer of a cloud object store service external to the consumer, one or more source objects currently stored at the cloud object store service, the one or more source objects having a first set of portions that are to be maintained by the cloud object store service and a second set of portions that are to be deleted by the cloud object store service;
providing, by the consumer, identifiers of the first set of portions and a first command to the cloud object store service configured to cause the cloud object store service to create a new object comprising the first set of portions of the one or more source objects that are currently stored at the cloud object store service, wherein the new object is created by the cloud object store service while bypassing sending the first set of portions of the one or more source objects to the consumer; and
providing a second command to the cloud object store service to cause the cloud object store service to delete the one or more source objects.

### Claim 2 (depends on 1)

The method of claim 1, wherein the first command to the cloud object store service is issued as part of a garbage collection operation.

### Claim 3 (depends on 1)

The method of claim 1, wherein the one or more source objects currently stored at the cloud object store service is in a mapping data structure maintained by the consumer that is a distributed shared memory database.

### Claim 4 (depends on 1)

The method of claim 1, wherein the first command comprises one or more subcommands connected by a pipeline.

### Claim 5

An apparatus comprising:
a memory; and
a processing device, operatively coupled to the memory, configured to:
identify, by a consumer of a cloud object store service external to the consumer, one or more source objects currently stored at the cloud object store service, the one or more source objects having a first set of portions that are to be maintained by the cloud object store service and a second set of portions that are to be deleted by the cloud object store service;
provide identifiers of the first set of portions and a first command to the cloud object store service configured to cause the cloud object store service to create a new object comprising the first set of portions of the one or more source objects that are already stored at the cloud object store service, wherein the new object is created by the cloud object store service while bypassing sending the first set of portions of the one or more source objects to the consumer; and
provide a second command to the cloud object store service to cause the cloud object store service to delete the one or more source objects.

### Claim 6 (depends on 5)

The apparatus of claim 5, wherein the first command to the cloud object store service is issued as part of a garbage collection operation.

### Claim 7 (depends on 5)

The apparatus of claim 5, wherein the one or more source objects currently stored at the cloud object store service is in a mapping data structure maintained by the consumer that is a distributed shared memory database.

### Claim 8 (depends on 5)

The apparatus of claim 5, wherein the first command comprises one or more subcommands connected by a pipeline.

### Claim 9

A non-transitory computer readable storage medium storing instructions which, when executed, cause a processing device to:
identify, by a consumer of a cloud object store service external to the consumer, one or more source objects currently stored at the cloud object store service, the one or more source objects having a first set of portions that are to be maintained by the cloud object store service and a second set of portions that are to be deleted by the cloud object store service;
provide identifiers of the first set of portions and a first command to the cloud object store service configured to cause the cloud object store service to create a new object comprising the first set of portions of the one or more source objects that are currently stored at the cloud object store service, wherein the new object is created by the cloud object store service while bypassing sending the first set of portions of the one or more source objects to the consumer; and
provide a second command to the cloud object store service to cause the cloud object store service to delete the one or more source objects; and
update a mapping data structure to reference the new object and remove the one or more source objects.

### Claim 10 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the first command to the cloud object store service is issued as part of a garbage collection operation.

### Claim 11 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the one or more source objects currently stored at the cloud object store service is in a mapping data structure maintained by the consumer that is a distributed shared memory database.

### Claim 12 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the first command comprises one or more subcommands connected by a pipeline.

### Claim 13 (depends on 1)

The method of claim 1, wherein the first command and the second command are provided using an application programming interface that is provided by the cloud object store service.

### Claim 14 (depends on 5)

The apparatus of claim 5, wherein the first command and the second command are provided using an application programming interface that is provided by the cloud object store service.

### Claim 15 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein the first command and the second command are provided using an application programming interface that is provided by the cloud object store service.

### Claim 16 (depends on 1)

The method of claim 1, wherein bypassing sending the first set of portions of the one or more source objects to the consumer is implemented by a multipart put copy operation.

### Claim 17 (depends on 5)

The apparatus of claim 5, wherein bypassing sending the first set of portions of the one or more source objects to the consumer is implemented by a multipart put copy operation.

### Claim 18 (depends on 9)

The non-transitory computer readable storage medium of claim 9, wherein bypassing sending the first set of portions of the one or more source objects to the consumer is implemented by a multipart put copy operation.
