# US 10,871,912 B2 · Techniques for facilitating processing checkpoints between computing devices

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

- Number: US 10,871,912 B2
- Document ID: US10871912B2
- Status: Granted
- Kind: B2
- Application number: 16/058,969
- Filed: 2018-08-08
- Published: 2019-06-27
- Granted: 2020-12-22
- Earliest claimed: 2017-12-21
- Assignees: Apple Inc.
- Applicants: Apple Inc.
- Inventors: Krishna G. Pai; Alexander D. Holmes; M. Mansur Ashraf; Alaukik Aggarwal
- Web page: https://patentgrep.com/patent/US10871912B2

## CPC

- G06F 3/065: {Replication mechanisms}
- G06F 3/0619: {in relation to data integrity, e.g. data losses, bit errors}
- 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

The embodiments set forth techniques for facilitating processing checkpoints between computing devices. A method can be performed by at least one first computing device configured to interface with a first server computing device cluster, and include (1) processing objects managed by the first server computing device cluster, where the objects are stored across at least two first partitions associated with the first server computing device cluster, (2) detecting a condition to facilitate a processing checkpoint with at least one second computing device configured to interface with a second server computing device cluster, where the objects are mirrored—but stored differently across at least two second partitions associated with the second server computing device cluster, (3) gathering, from each partition of the at least two first partitions, information associated with a particular number of last-processed objects, and (4) providing the information to the at least one second computing device.

## Claims

### Claim 1

A method for facilitating processing checkpoints, the method comprising, by at least one first computing device that interfaces with a first server computing device cluster:
processing objects managed by the first server computing device cluster, wherein the objects are stored across at least two first partitions associated with the first server computing device cluster;
detecting a condition to facilitate a processing checkpoint with at least one second computing device that interfaces with a second server computing device cluster and that is distinct from the first server computing device cluster, wherein the objects are mirrored, but stored differently across at least two second partitions associated with the second server computing device cluster;
gathering, from each partition of the at least two first partitions, information associated with a particular number of last-processed objects; and
providing the information to the at least one second computing device.

### Claim 2 (depends on 1)

The method of claim 1, wherein the condition is satisfied in conjunction with:
a period of time lapsing; or
a threshold number of objects being processed at the at least one first computing device.

### Claim 3 (depends on 1)

The method of claim 1, wherein the information includes a unique identifier for each object of the last-processed objects.

### Claim 4 (depends on 3)

The method of claim 3, wherein, for each object of the last-processed objects, the unique identifier is a hash value produced by issuing a hash function against at least one unique property of the object.

### Claim 5 (depends on 1)

The method of claim 1, further comprising:
receiving, from the at least one second computing device, an acknowledgement that the information is successfully received and processed by the at least one second computing device; and
updating a configuration to indicate that the processing checkpoint succeeded.

### Claim 6 (depends on 1)

The method of claim 1, wherein each object managed by the first server computing device cluster includes:
a unique identifier; and
a byte array for storing data.

### Claim 7 (depends on 1)

The method of claim 1, wherein at least one object of the objects is stored:
within a first particular partition of the at least two first partitions associated with the first server computing device cluster, and
within a second particular partition of the at least two second partitions associated with the second server computing device cluster, and the manner in which the first particular partition is logically disposed within the at least two first partitions is distinct from the manner in which the second particular partition is logically disposed within the at least two second partitions.

### Claim 8

A first computing device that (i) interfaces with a first server computing device cluster, and (ii) facilitates processing checkpoints, the first computing device comprising:
at least one processor; and
at least one memory storing instructions that, when executed by the at least one processor, cause the first computing device to:
process objects managed by the first server computing device cluster, wherein the objects are stored across at least two first partitions associated with the first server computing device cluster;
detect a condition to facilitate a processing checkpoint with at least one second computing device that interfaces with a second server computing device cluster and that is distinct from the first server computing device cluster, wherein the objects are mirrored, but stored differently across at least two second partitions associated with the second server computing device cluster;
gather, from each partition of the at least two first partitions, information associated with a particular number of last-processed objects; and
provide the information to the at least one second computing device.

### Claim 9 (depends on 8)

The first computing device of claim 8, wherein the condition is satisfied in conjunction with:
a period of time lapsing; or
a threshold number of objects being processed at the first computing device.

### Claim 10 (depends on 8)

The first computing device of claim 8, wherein the information includes a unique identifier for each object of the last-processed objects.

### Claim 11 (depends on 10)

The first computing device of claim 10, wherein, for each object of the last-processed objects, the unique identifier is a hash value produced by issuing a hash function against at least one unique property of the object.

### Claim 12 (depends on 8)

The first computing device of claim 8, wherein the at least one processor further causes the first computing device to:
receive, from the at least one second computing device, an acknowledgement that the information is successfully received and processed by the at least one second computing device; and
update a configuration to indicate that the processing checkpoint succeeded.

### Claim 13 (depends on 8)

The first computing device of claim 8, wherein at least one object of the objects is stored:
within a first particular partition of the at least two first partitions associated with the first server computing device cluster, and
within a second particular partition of the at least two second partitions associated with the second server computing device cluster, and the manner in which the first particular partition is logically disposed within the at least two first partitions is distinct from the manner in which the second particular partition is logically disposed within the at least two second partitions.

### Claim 14

A non-transitory computer readable storage medium configured to store instructions that, when executed by a processor included in at least one first computing device that interfaces with a first server computing device cluster, cause the at least one first computing device to facilitate processing checkpoints, by carrying out steps that include:
processing objects managed by the first server computing device cluster, wherein the objects are stored across at least two first partitions associated with the first server computing device cluster;
detecting a condition to facilitate a processing checkpoint with at least one second computing device that interfaces with a second server computing device cluster and that is distinct from the first server computing device cluster, wherein the objects are mirrored, but stored differently across at least two second partitions associated with the second server computing device cluster;
gathering, from each partition of the at least two first partitions, information associated with a particular number of last-processed objects; and
providing the information to the at least one second computing device.

### Claim 15 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the condition is satisfied in conjunction with:
a period of time lapsing; or
a threshold number of objects being processed at the at least one first computing device.

### Claim 16 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the information includes a unique identifier for each object of the last-processed objects.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein, for each object of the last-processed objects, the unique identifier is a hash value produced by issuing a hash function against at least one unique property of the object.

### Claim 18 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein the steps further include:
receiving, from the at least one second computing device, an acknowledgement that the information is successfully received and processed by the at least one second computing device; and
updating a configuration to indicate that the processing checkpoint succeeded.

### Claim 19 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein each object managed by the first server computing device cluster includes:
a unique identifier; and
a byte array for storing data.

### Claim 20 (depends on 14)

The non-transitory computer readable storage medium of claim 14, wherein at least one object of the objects is stored:
within a first particular partition of the at least two first partitions associated with the first server computing device cluster, and
within a second particular partition of the at least two second partitions associated with the second server computing device cluster, and the manner in which the first particular partition is logically disposed within the at least two first partitions is distinct from the manner in which the second particular partition is logically disposed within the at least two second partitions.
