# US 11,650,889 B2 · Zero data loss transfer protocol

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

- Number: US 11,650,889 B2
- Document ID: US11650889B2
- Status: Granted
- Kind: B2
- Application number: 16/545,602
- Filed: 2019-08-20
- Published: 2019-12-26
- Granted: 2023-05-16
- Earliest claimed: 2014-06-26
- Assignees: Sybase, Inc.
- Applicants: Sybase, Inc.
- Inventors: Heping Shang; Ming-Chen Lo; Elena Lora-Gallardo; Xia-ge Dai
- Web page: https://patentgrep.com/patent/US11650889B2

## CPC

- G06F 11/1471: involving logging of persistent data for recovery
- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06F 11/165: {with continued operation after detection of the error}
- G06F 11/2012: {and using different communication protocols}
- G06F 11/2082: {Data synchronisation}
- G06F 16/1865: {Transactional file systems}
- G06F 16/2308: {Concurrency control (transaction processing G06F9/466)}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 2201/80: Database-specific techniques
- G06F 2201/84: Using snapshots, i.e. a logical point-in-time copy of the data
- G06F 2201/85: Active fault masking without idle spares
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A method for reliable data synchronization within a network is disclosed. The producer system stories data in a persistent data store and produces one or more data updates. The producer system simultaneously transmits the data updates to a consumer system and initiating storage of the data updates at the producer system. When storage of the data updates at the producer system is complete, the producer system transmits a first acknowledgment to the consumer system. The producer system determines whether a second acknowledgment has been received from the consumer system, wherein the second acknowledgment indicates that the consumer system has successfully stored the data updates at the consumer system. In accordance with a determination that the second acknowledgment has been received from the consumer system, the producer system changes the temporary status of the data updates stored at the producer system to a permanent status.

## Claims

### Claim 1

A system comprising:
one or more computer processors;
one or more computer memories; and
a set of instructions incorporated into the one or more computer memories, the set of instructions configuring the one or more computer processors to perform operations comprising:
generating data updates at a producer data storage module at a producer device;
prior to the data updates being completely stored in persistent storage at the producer device, transmitting the data updates and a data storage request message from the producer data storage module at the producer device to a consumer data storage module at a consumer device while simultaneously sending the data updates to a producer transaction log at the producer device;
based on a completion of storing of the data updates in the persistent storage and a logging of the data updates at the producer transaction log at the producer device, sending a producer acknowledgement message from the producer transaction log at the producer device to a consumer persistent data log at the consumer device; and
based on a receiving, at the producer device, of a consumer acknowledgement message from the consumer device and the producer acknowledgement message from the producer transaction log at the producer device, committing the data updates as final at the producer transaction log at the producer device.

### Claim 2 (depends on 1)

The system of claim 1, wherein the consumer acknowledgment message indicates that the data updates were stored by the consumer device.

### Claim 3 (depends on 1)

The system of claim 1, wherein the consumer acknowledgement message further indicates that the data updates were logged at the producer device.

### Claim 4 (depends on 1)

The system of claim 1, wherein the storing of the data updates at the producer data storage module at producer device and the logging of the data updates at the producer transaction log at the producer device are performed simultaneously.

### Claim 5 (depends on 1)

The system of claim 1, wherein the consumer device is configured to commit the data updates as final at the consumer device only after receiving the producer acknowledgement message and the consumer acknowledgment message.

### Claim 6 (depends on 1)

The system of claim 1, the operations further comprising, based on a failure of the receiving of the consumer acknowledgment message and the producer acknowledgment message, instigating a recovery process, the recovery process including restarting the transmitting of the data updates and the data storage request message while simultaneously sending the data updates to the producer transaction log.

### Claim 7 (depends on 6)

The system of claim 6, wherein the restarting is based on an amount of time within which the failure can be repaired.

### Claim 8

A method comprising:
generating data updates at a producer data storage module at a producer device;
prior to the data updates being completely stored in persistent storage at the producer device, transmitting the data updates and a data storage request message from the producer data storage module at the producer device to a consumer data storage module at a consumer device while simultaneously sending the data updates to a producer transaction log at the producer device,
based on a completion of storing of the data updates in the persistent storage and a logging of the data updates at the producer transaction log at the producer device, sending a producer acknowledgement message from the producer transaction log at the producer device to a consumer persistent data log at the consumer device, and
based on a receiving, at the producer device, of a consumer acknowledgement message from the consumer device and the producer acknowledgement message from the producer transaction log at the producer device, committing the data updates as final at the producer transaction log at the producer device.

### Claim 9 (depends on 8)

The method of claim 8, wherein the consumer acknowledgment message indicates that the data updates were stored by the consumer device.

### Claim 10 (depends on 8)

The method of claim 8, wherein the consumer acknowledgement message further indicates that the data updates were logged at the producer device.

### Claim 11 (depends on 8)

The method of claim 8, wherein the storing of the data updates at the producer data storage module at producer device and the logging of the data updates at the producer transaction log at the producer device are performed simultaneously.

### Claim 12 (depends on 8)

The method of claim 8, wherein the consumer device is configured to commit the data updates as final at the consumer device only after receiving the producer acknowledgement message and the consumer acknowledgment message.

### Claim 13 (depends on 8)

The method of claim 8, further comprising, based on a failure of the receiving of the consumer acknowledgment message and the producer acknowledgment message, instigating a recovery process, the recovery process including restarting the transmitting of the data updates and the data storage request message while simultaneously sending the data updates to the producer transaction log.

### Claim 14 (depends on 13)

The method of claim 13, wherein the restarting is based on an amount of time within which the failure can be repaired.

### Claim 15

A non-transitory computer-readable storage medium storing a set of instructions that, when executed by one or more processors of a machine, cause the machine to perform operations, the operations comprising:
generating data updates at a producer data storage module at a producer device;
prior to the data updates being completely stored in persistent storage at the producer device, transmitting the data updates and a data storage request message from the producer data storage module at the producer device to a consumer data storage module at a consumer device while simultaneously sending the data updates to a producer transaction log at the producer device;
based on a completion of storing of the data updates in the persistent storage and a logging of the data updates at the producer transaction log at the producer device, sending a producer acknowledgement message from the producer transaction log at the producer device to a consumer persistent data log at the consumer device; and
based on a receiving, at the producer device, of a consumer acknowledgement message from the consumer device and the producer acknowledgement message from the producer transaction log at the producer device, committing the data updates as final at the producer transaction log at the producer device.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the consumer acknowledgment message indicates that the data updates were stored by the consumer device.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the consumer acknowledgement message further indicates that the data updates were logged at the producer device.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the storing of the data updates at the producer data storage module at producer device and the logging of the data updates at the producer transaction log at the producer device are performed simultaneously.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the consumer device is configured to commit the data updates as final at the consumer device only after receiving the producer acknowledgement message and the consumer acknowledgment message.

### Claim 20 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, the operations further comprising, based on a failure of the receiving of the consumer acknowledgment message and the producer acknowledgment message, instigating a recovery process, the recovery process including restarting the transmitting of the data updates and the data storage request message while simultaneously sending the data updates to the producer transaction log.
