# US 12,112,054 B2 · Coordinated persistent memory data mirroring

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

- Number: US 12,112,054 B2
- Document ID: US12112054B2
- Status: Granted
- Kind: B2
- Application number: 17/985,364
- Filed: 2022-11-11
- Published: 2024-05-16
- Granted: 2024-10-08
- Earliest claimed: 2022-11-11
- Assignees: Dell Products L.P.
- Applicants: Dell Products L.P.
- Inventors: Tao Chen; Shuguang Gong; Yong Zou
- Web page: https://patentgrep.com/patent/US12112054B2

## CPC

- G06F 3/061: {Improving I/O performance}
- G06F 3/065: {Replication mechanisms}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- G06F 3/0653: {Monitoring storage devices or systems}
- G06F 3/067: {Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS]}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Disclosed is a method for preforming the data mirror comprising: receiving from an application executing on a computing device a request to write data to a first local persistence memory of the computing device; issuing an async write operation to mirror the write request to write a same data to a second local persistence memory of the computing device by using a supplemental device; performing a write operation to write the data to the first local persistence memory by using a central processing unit (CPU) from the processing resource of the computing device; in response to determining that the write operation is completed and the async write operation is completed, determining a status check result indicating if the async write operation is successful; and sending the status check result to the application.

## Claims

### Claim 1

A computer-implemented method, comprising:
receiving, by at least one processor of a processing resource, from an application executing on a computing device a request to write data to a first local persistence memory of the computing device;
issuing, by the at least one processor, an async write operation to mirror the write request to write a same data to a second local persistence memory of the computing device by using a supplemental device;
performing, by the at least one processor, a write operation to write the data to the first local persistence memory by using a central processing unit (CPU) from the processing resource of the computing device;
in response to determining that the write operation is completed and the async write operation is completed, determining, by the at least one processor, a status check result indicating if the async write operation is successful; and
sending, by the at least one processor, the status check result to the application.

### Claim 2 (depends on 1)

The method of claim 1, wherein the supplemental device is different from the CPU to reduce a workload from the CPU.

### Claim 3 (depends on 1)

The method of claim 1, wherein the supplemental device is a remote direct memory access (RDMA) network interface card.

### Claim 4 (depends on 1)

The method of claim 1, wherein the supplemental device is a Data Streaming Accelerator (DSA) engine inside a processor.

### Claim 5 (depends on 1)

The method of claim 1, wherein the supplemental device includes a virtual device of a runtime library.

### Claim 6 (depends on 1)

The method of claim 1, wherein the determining the status check result further comprises:
determining whether the copied data through the async write operation is successful, wherein when the copied data through the async operation meets an error threshold, the copied data through the async write operation is successful; and
in response to determining the copied data through the async write operation is not successful, sending the error status check result to the application; and
issuing a second async write operation to mirror the write request to write the same data to the second local persistence memory of the computing device by using the supplemental device.

### Claim 7 (depends on 1)

The method of claim 1, wherein the write operation and the async write operation started substantially at the same time.

### Claim 8 (depends on 1)

The method of claim 1, wherein the async write operation takes longer than the write operation.

### Claim 9

A non-transitory machine-readable medium having instructions stored therein, which when executed by a processor, cause the processor to perform:
receiving from an application executing on a computing device a request to write data to a first local persistence memory of the computing device;
issuing an async write operation to mirror the write request to write a same data to a second local persistence memory of the computing device by using a supplemental device;
performing a write operation to write the data to the first local persistence memory by using a central processing unit (CPU) from the processing resource of the computing device;
in response to determining that the write operation is completed and the async write operation is completed, determining a status check result indicating if the async write operation is successful; and
sending the status check result to the application.

### Claim 10 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the supplemental device is different from the CPU to reduce a workload from the CPU.

### Claim 11 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the supplemental device is a remote direct memory access (RDMA) network interface card.

### Claim 12 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the supplemental device is a Data Streaming Accelerator (DSA) engine inside a processor.

### Claim 13 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the supplemental device includes a virtual device of a runtime library.

### Claim 14 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the determining the status check result further comprises:
determining whether the copied data through the async write operation is successful, wherein when the copied data through the async operation meets an error threshold, the copied data through the async write operation is successful; and
in response to determining the copied data through the async write operation is not successful, sending the error status check result to the application; and
issuing a second async write operation to mirror the write request to write the same data to the second local persistence memory of the computing device by using the supplemental device.

### Claim 15 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the write operation and the async write operation started substantially at the same time.

### Claim 16 (depends on 9)

The non-transitory machine-readable medium of claim 9, wherein the async write operation takes longer than the write operation.

### Claim 17

A system, comprising:
a processor; and
a memory coupled to the processor to store instructions, which when executed by the processor, cause the processor to perform:
receiving from an application executing on a computing device a request to write data to a first local persistence memory of the computing device;
issuing an async write operation to mirror the write request to write a same data to a second local persistence memory of the computing device by using a supplemental device;
performing a write operation to write the data to the first local persistence memory by using a central processing unit (CPU) from the processing resource of the computing device;
in response to determining that the write operation is completed and the async write operation is completed, determining a status check result indicating if the async write operation is successful; and
sending the status check result to the application.

### Claim 18 (depends on 17)

The system of claim 17, wherein the supplemental device is different from the CPU to reduce a workload from the CPU.

### Claim 19 (depends on 17)

The system of claim 17, wherein the supplemental device is a remote direct memory access (RDMA) network interface card.

### Claim 20 (depends on 17)

The system of claim 17, wherein the supplemental device is a Data Streaming Accelerator (DSA) engine inside a processor.
