# US 12,223,183 B2 · Combining memory aligned operations

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

- Number: US 12,223,183 B2
- Document ID: US12223183B2
- Status: Granted
- Kind: B2
- Application number: 18/528,045
- Filed: 2023-12-04
- Published: 2024-07-11
- Granted: 2025-02-11
- Earliest claimed: 2015-10-29
- Assignees: Pure Storage, Inc.
- Applicants: Pure Storage, Inc.
- Inventors: Christopher Golden; Scott Smith; Luke Paulsen; David Grunwald; Jianting Cao
- Web page: https://patentgrep.com/patent/US12223183B2

## CPC

- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/061: {Improving I/O performance}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0659: {Command handling arrangements, e.g. command buffers, queues, command scheduling}
- G06F 3/0665: {at area level, e.g. provisioning of virtual or logical volumes}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F 3/0683: {Plurality of storage devices}
- G06F 3/0688: {Non-volatile semiconductor memory arrays}
- G06F 3/0689: {Disk arrays, e.g. RAID, JBOD}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Optimizing copy operations in a storage array, includes combining, in dependence upon a metadata optimization policy, a plurality of copy operations into a single copy operation and splitting the single copy operation into an optimized set of executable copy operations that copy data based on memory alignment.

## Claims

### Claim 1

A method comprising:
combining, into a single operation, a plurality of operations based on a metadata boundary at an underlying storage resource that defines a range of addresses of a single metadata block; and
from the single operation, creating an optimized set of one or more executable operations that write a particular amount of data that aligns with a memory layout at a target storage location.

### Claim 2 (depends on 1)

The method of claim 1 wherein combining, in dependence upon a metadata optimization policy, the plurality of operations into a single operation further comprises:
identifying a metadata boundary for an underlying storage resource, the metadata boundary defining a range of addresses within underlying storage resources that are described by a single metadata block; and
grouping, within the single operation, all operations that are directed toward the metadata boundary.

### Claim 3 (depends on 1)

The method of claim 1 wherein splitting the single operation into an optimized set of executable copy operations further comprises splitting the single operation into one or more copy operations that copy a particular amount of data that aligns with a physical or logical layout of memory on a storage device that data is copied from.

### Claim 4 (depends on 1)

The method of claim 1 further comprising:
identifying a copy operation group associated with the single operation, wherein:
detecting a triggering event associated with a particular copy operation group; and
combining the plurality of operations into the single operation further comprises including only operations associated with the particular copy operation group in the single operation.

### Claim 5 (depends on 1)

The method of claim 1, wherein the plurality of operations are copy operations.

### Claim 6 (depends on 1)

The method of claim 1 wherein splitting the single operation into an optimized set of executable copy operations further comprises splitting the single operation into one or more copy operations that write an amount of data optimized for transmission across a network.

### Claim 7 (depends on 1)

The method of claim 1 wherein the single operation is a virtual copy operation.

### Claim 8 (depends on 1)

The method of claim 1 further comprising detecting, as a triggering event, that a number of copy operations received has reached a predetermined number.

### Claim 9 (depends on 1)

The method of claim 1 further comprising, detecting, as a triggering event, that a combined size of the plurality of operations has reached a predetermined size threshold.

### Claim 10

A storage array controller, the storage array controller including a computer processor and a computer memory, the computer memory including computer program instructions that, when executed, cause the storage array controller to carry out the steps of:
combining, into a single operation, a plurality of operations based on a metadata boundary at an underlying storage resource that defines a range of addresses of a single metadata block; and
from the single operation, creating an optimized set of one or more executable operations that write a particular amount of data that aligns with a memory layout at a target storage location.

### Claim 11 (depends on 10)

The storage array controller of claim 10 wherein combining, in dependence upon a metadata optimization policy, the plurality of operations into a single operation further comprises:
identifying a metadata boundary for an underlying storage resource, the metadata boundary defining a range of addresses within underlying storage resources that are described by a single metadata block; and
grouping, within the single operation, all of the operations that are directed toward the metadata boundary.

### Claim 12 (depends on 10)

The storage array controller of claim 10 wherein splitting the single operation into an optimized set of executable copy operations further comprises splitting the single operation into one or more copy operations that copy a particular amount of data that aligns with a physical or logical layout of memory on a storage device that data is copied from.

### Claim 13 (depends on 10)

The storage array controller of claim 10 further comprising computer program instructions that, when executed, cause the storage array controller to carry out the steps of:
identifying a copy operation group associated with the single operation;
detecting a triggering event associated with a particular copy operation group; and
combining the plurality of operations into the single operation further comprises including only operations associated with the particular copy operation group in the single operation.

### Claim 14 (depends on 10)

The storage array controller of claim 10 further comprising computer program instructions that carry out the step of detecting, as a triggering event, that a predetermined period of time has expired since a most recently received copy operation was received.

### Claim 15 (depends on 10)

The storage array controller of claim 10 further comprising computer program instructions that carry out the step of detecting, as a triggering event, that a predetermined period of time has expired since an oldest copy operation was received.

### Claim 16 (depends on 10)

The storage array controller of claim 10, wherein the plurality of operations are copy operations.

### Claim 17 (depends on 10)

The storage array controller of claim 10 wherein splitting the single operation into an optimized set of executable copy operations further comprises splitting the single operation into one or more copy operations that write an amount of data optimized for transmission across a network.

### Claim 18 (depends on 10)

The storage array controller of claim 10 wherein the single operation is a virtual copy operation.

### Claim 19

A computer program product, the computer program product disposed on a computer readable storage medium, the computer program product comprising computer program instructions that, when executed, cause a storage device to carry out the steps of:
combining, in dependence upon a metadata optimization policy, a plurality of operations into a single operation; and
splitting the single operation into an optimized set of one or more executable copy operations that write a particular amount of data that aligns with a physical or logical layout of memory at a target storage location.

### Claim 20 (depends on 19)

The computer program product of claim 19 wherein combining, in dependence upon a metadata optimization policy, the plurality of operations into a single operation further comprises:
identifying a metadata boundary for an underlying storage resource, the metadata boundary defining a range of addresses within underlying storage resources that are described by a single metadata block; and
grouping, within the single operation, all operations that are directed toward the metadata boundary.
