# US 11,442,943 B1 · Error-causing record isolation for data stream processing

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

- Number: US 11,442,943 B1
- Document ID: US11442943B1
- Status: Granted
- Kind: B1
- Application number: 17/007,778
- Filed: 2020-08-31
- Granted: 2022-09-13
- Earliest claimed: 2020-08-31
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Tyson Charles Olychuck; Xiaoyu Meng; Deepak Verma
- Web page: https://patentgrep.com/patent/US11442943B1

## CPC

- G06F 11/1443: {Transmit or communication errors}
- G06F 11/1474: in transactions (updating of structured data in databases G06F16/23)
- G06F 16/24568: {Data stream processing; Continuous queries}
- G06F 2201/82: Solving problems relating to consistency
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

A first group processing attempt may be performed on a first record group in a stream of ordered data records. The first group processing attempt may fail, and the first record group may be split into at least a second record group and a third record group. A second group processing attempt may be performed on the second record group, and a third group processing attempt may be performed on the third record group. For the second, the third and following record groups, each record group that is not processed successfully may be split into two or more other record groups and additional group processing attempts may be performed on the two or more other record groups until the error-causing record is isolated as a single record. Processing of the error-causing record may be bypassed after it is isolated as a single record.

## Claims

### Claim 1

A computing system comprising:
one or more processors; and
one or more memories having stored therein computing instructions that, upon execution by the one or more processors, cause the computing system to perform operations comprising:
receiving a first record group included in a data stream of ordered records, wherein processing of the data stream includes a plurality of group processing attempts, wherein each of the plurality of group processing attempts either succeeds or fails, wherein a success occurs when all records in an attempted record group are processed, and wherein a failure occurs based on an error-causing record in the attempted record group;
performing a first group processing attempt of the plurality of group processing attempts on the first record group;
determining that the first group processing attempt fails;
splitting the first record group into at least a second record group and a third record group, wherein the splitting of the first record group is performed based on a user-configurable parameter that allows a user to decide whether record groups should be split based on failings of group processing attempts;
performing a second group processing attempt of the plurality of group processing attempts on the second record group;
performing a third group processing attempt of the plurality of group processing attempts on the third record group; and
for the second, the third and following record groups, splitting each record group that is not processed successfully into two or more other record groups and performing additional group processing attempts of the plurality of group processing attempts on the two or more other record groups until the error-causing record is isolated as a single record.

### Claim 2 (depends on 1)

The computing system of claim 1, wherein the operations further comprise bypassing processing of the error-causing record after it is isolated as a single record.

### Claim 3 (depends on 1)

The computing system of claim 1, wherein a user-configurable parameter allows a user to select a maximum number of record group processing retry attempts that limits how many times failed processing of a record group is reattempted.

### Claim 4 (depends on 3)

The computing system of claim 3, wherein the first group processing attempt is retried for the maximum number of record group processing retry attempts before the first record group is split.

### Claim 5

A computer-implemented method comprising:
receiving a first record group included in a data stream of ordered records, wherein processing of the data stream includes a plurality of group processing attempts, wherein each of the plurality of group processing attempts either succeeds or fails, wherein a success occurs when all records in an attempted record group are processed, and wherein a failure occurs based on an error-causing record in the attempted record group;
performing a first group processing attempt of the plurality of group processing attempts on the first record group;
determining that the first group processing attempt fails;
splitting the first record group into at least a second record group and a third record group;
performing a second group processing attempt of the plurality of group processing attempts on the second record group;
performing a third group processing attempt of the plurality of group processing attempts on the third record group; and
for the second, the third and following record groups, splitting each record group that is not processed successfully into two or more other record groups and performing additional group processing attempts of the plurality of group processing attempts on the two or more other record groups until the error-causing record is isolated as a single record.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, further comprising bypassing processing of the error-causing record after it is isolated as a single record.

### Claim 7 (depends on 5)

The computer-implemented method of claim 5, wherein a user-configurable parameter allows a user to select a maximum number of record group processing retry attempts that limits how many times failed processing of a record group is reattempted.

### Claim 8 (depends on 7)

The computer-implemented method of claim 7, wherein the first group processing attempt is retried for the maximum number of record group processing retry attempts before the first record group is split.

### Claim 9 (depends on 5)

The computer-implemented method of claim 5, wherein a user-configurable parameter allows a user to select a maximum record age, and wherein attempts to process record groups with records exceeding the maximum record age are prohibited.

### Claim 10 (depends on 5)

The computer-implemented method of claim 5, wherein the splitting of the first record group is performed based on a user-configurable parameter that allows a user to decide whether record groups should be split based on failings of group processing attempts.

### Claim 11 (depends on 5)

The computer-implemented method of claim 5, wherein the first record group is bisected into the second record group and the third record group.

### Claim 12 (depends on 5)

The computer-implemented method of claim 5, wherein a user-configurable parameter allows a user to select a quantity of record groups into which the first record group is split.

### Claim 13

One or more non-transitory computer-readable storage media having stored thereon computing instructions that, upon execution by one or computing devices, cause the one or more computing devices to perform operations comprising:
receiving a first record group included in a data stream of ordered records, wherein processing of the data stream includes a plurality of group processing attempts, wherein each of the plurality of group processing attempts either succeeds or fails, wherein a success occurs when all records in an attempted record group are processed, and wherein a failure occurs based on an error-causing record in the attempted record group;
performing a first group processing attempt of the plurality of group processing attempts on the first record group;
determining that the first group processing attempt fails;
splitting the first record group into at least a second record group and a third record group;
performing a second group processing attempt of the plurality of group processing attempts on the second record group;
performing a third group processing attempt of the plurality of group processing attempts on the third record group; and
for the second, the third and following record groups, splitting each record group that is not processed successfully into two or more other record groups and performing additional group processing attempts of the plurality of group processing attempts on the two or more other record groups until the error-causing record is isolated as a single record.

### Claim 14 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein the operations further comprise bypassing processing of the error-causing record after it is isolated as a single record.

### Claim 15 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein a user-configurable parameter allows a user to select a maximum number of record group processing retry attempts that limits how many times failed processing of a record group is reattempted.

### Claim 16 (depends on 15)

The one or more non-transitory computer-readable storage media of claim 15, wherein the first group processing attempt is retried for the maximum number of record group processing retry attempts before the first record group is split.

### Claim 17 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein a user-configurable parameter allows a user to select a maximum record age, and wherein attempts to process record groups with records exceeding the maximum record age are prohibited.

### Claim 18 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein the splitting of the first record group is performed based on a user-configurable parameter that allows a user to decide whether record groups should be split based on failings of group processing attempts.

### Claim 19 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein a user-configurable parameter allows a user to select a quantity of record groups into which the first record group is split.

### Claim 20 (depends on 13)

The one or more non-transitory computer-readable storage media of claim 13, wherein the operations further comprise sending metadata for the error-causing record to a user-selectable destination.
