# US 2018/0026867 A1 · Monitoring of replicated data instances

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

- Number: US 2018/0026867 A1
- Document ID: US20180026867A1
- Status: Published application
- Kind: A1
- Application number: 15/724,038
- Filed: 2017-10-03
- Published: 2018-01-25
- Earliest claimed: 2009-10-26
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Grant Alexander MacDonald McAlister; Swaminathan Sivasubramanian; Barry B. Hunter, JR.; Silas M. Brazil
- Web page: https://patentgrep.com/patent/US20180026867A1

## CPC

- H04L 43/10: Active monitoring, e.g. heartbeat, ping or trace-route
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/203: {using migration}
- G06F 11/2035: {without idle spare hardware}
- G06F 11/2069: {Management of state, configuration or failover}
- G06F 11/2076: {Synchronous techniques}
- G06F 11/3006: {where the computing system is distributed, e.g. networked systems, clusters, multiprocessor systems (multiprogramming arrangements G06F9/46; allocation of resources G06F9/50)}
- G06F 11/3055: {Monitoring arrangements for monitoring the status of the computing system or of the computing system component, e.g. monitoring if the computing system is on, off, available, not available (error or fault processing without redundancy G06F11/0703; error detection or correction by redundancy in data representation G06F11/08; error detection or correction of the data by redundancy in operations G06F11/14; error detection or correction by redundancy in hardware G06F11/16)}
- G06F 11/2082: {Data synchronisation}
- G06F 2201/80: Database-specific techniques
- G06F 2201/86: Event-based monitoring
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Replicated instances in a distributed computing environment provide for automatic failover and recovery. A component monitors the status of event processors in a set or bucket and handles the failure of an event processor. For a large number of instances, the data environment can be partitioned such that each monitoring component is assigned a partition of the workload. At intervals, each event processor sends a “heartbeat” message to the event processors in the bucket covering the same workload partition, to inform the other event processors of the status of the event processor sending the heartbeat. If it is determined that a heartbeat is received from each event processor in the bucket, a current process can continue. In the event of monitoring component failure, the instances can be repartitioned, and the remaining monitoring components can be assigned to the new partitions to substantially evenly distribute the workload.

## Claims

### Claim 1

A computer-implemented method, comprising:
assigning a first event processor to one or more workloads in a distributed computing environment;
receiving one or more messages on behalf of the first event processor;
determining whether at least one of the one or more messages was not received within a first time interval, and, if so,
assigning at least a second event processor to the one or more workloads.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, further comprising:
determining to continue execution of a current process in the distributing computing environment if at least one of the one or more messages is received from the first event processor.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising:
maintaining, by the first event processor and the at least a second event processor, a list of all event processors assigned to the one or more workloads, a respective status for each event processor, and a respective last check-in time of each event processor.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, further comprising:
ordering the one or more workloads in lexicographical order or another order by an identifier.

### Claim 5 (depends on 5)

The computer-implemented method of claim 5, further comprising:
reallocating, by the second event processor upon a failure of the first event processor, respective responsibilities for the one or more workloads assigned to the first event processor, based on the lexicographical order or another order by an identifier.

### Claim 6 (depends on 1)

The computer-implemented method of claim 1, further comprising:
dividing the workloads into one or more workload partitions in a data plane of the distributed computing environment.

### Claim 7 (depends on 1)

The computer-implemented method of claim 1, further comprising:
transmitting the one or more messages to the first event processor periodically or aperiodically.

### Claim 8

A computing system, comprising:
at least one processor; and
memory having stored therein a set of instructions, which when performed by the at least one processor, cause the computing system to:
assign a first event processor to one or more workloads in a distributed computing environment;
receive one or more messages on behalf of the first event processor;
determine whether at least one of the one or more messages was not received within a first time interval, and, if so,
assign at least a second event processor to the one or more workloads.

### Claim 9 (depends on 8)

The computing system of claim 8, wherein performing the instructions further causes the computer system to:
determine to continue execution of a current process in the distributing computing environment if at least one of the one or more messages is received from the first event processor.

### Claim 10 (depends on 8)

The computing system of claim 8, wherein performing the instructions further causes the computer system to:
maintain, by the first event processor and the at least a second event processor, a list of all event processors assigned to the one or more workloads, a respective status for each event processor, and a respective last check-in time of each event processor.

### Claim 11 (depends on 8)

The computing system of claim 8, wherein performing the instructions further causes the computer system to:
order the one or more workloads in lexicographical order or another order by an identifier.

### Claim 12 (depends on 12)

The computing system of claim 12, wherein performing the instructions further causes the computer system to:
reallocate, by the second event processor upon a failure of the first event processor, respective responsibilities for the one or more workloads assigned to the first event processor, based on the lexicographical order or another order by an identifier.

### Claim 13 (depends on 8)

The computing system of claim 8, wherein performing the instructions further causes the computer system to:
divide the workloads into one or more workload partitions in a data plane of the distributed computing environment.

### Claim 14 (depends on 8)

The computing system of claim 8, wherein performing the instructions further causes the computer system to:
transmit the one or messages to the first event processor periodically or aperiodically.

### Claim 15

A non-transitory computing device-readable medium comprising computing device-executable instructions, wherein the instructions, in response to execution by a computing device, cause the computing device to:
assign a first event processor to one or more workloads in a distributed computing environment;
receive one or more messages on behalf of the first event processor;
determine whether at least one of the one or more messages was not received within a first time interval, and, if so,
assign at least a second event processor to the one or more workloads.

### Claim 16 (depends on 15)

The non-transitory computing device-readable medium of claim 15, further comprising the instructions, in response to execution by a computing device, causing the computing device to:
determine to continue execution of a current process in the distributing computing environment if at least one of the one or more messages is received from the first event processor.

### Claim 17 (depends on 15)

The non-transitory computing device-readable medium of claim 15, further comprising the instructions, in response to execution by a computing device, causing the computing device to:
maintain, by the first event processor and the at least a second event processor, a list of all event processors assigned to the one or more workloads, a respective status for each event processor, and a respective last check-in time of each event processor.

### Claim 18 (depends on 15)

The non-transitory computing device-readable medium of claim 15, further comprising the instructions, in response to execution by a computing device, causing the computing device to:
order the one or more workloads in lexicographical order or another order by an identifier.

### Claim 19 (depends on 19)

The non-transitory computing device-readable medium of claim 19, further comprising the instructions, in response to execution by a computing device, causing the computing device to:
reallocate, by the second event processor upon a failure of the first event processor, respective responsibilities for the one or more workloads assigned to the first event processor, based on the lexicographical order or another order by an identifier.

### Claim 20 (depends on 15)

The non-transitory computing device-readable medium of claim 15, further comprising the instructions, in response to execution by a computing device, causing the computing device to:
transmit the one or messages to the first event processor periodically or aperiodically.
