# US 11,442,818 B2 · Prioritized leadership for data replication groups

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

- Number: US 11,442,818 B2
- Document ID: US11442818B2
- Status: Granted
- Kind: B2
- Application number: 16/729,899
- Filed: 2019-12-30
- Published: 2020-04-30
- Granted: 2022-09-13
- Earliest claimed: 2016-06-30
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Christopher Magee Greenwood; Divya Ashok Kumar Jain
- Web page: https://patentgrep.com/patent/US11442818B2

## CPC

- G06F 11/1464: {for networked environments}
- G06F 16/27: Replication, distribution or synchronisation of data between databases or within a distributed database system; Distributed database system architectures therefor
- G06F 11/0757: {by exceeding a time limit, i.e. time-out, e.g. watchdogs}
- G06F 11/1448: {Management of the data involved in backup or backup restore}
- G06F 11/1662: {the resynchronized component or unit being a persistent storage device (re-synchronization of failed mirror storage G06F11/2082; rebuild or reconstruction of parity RAID storage G06F11/1008)}
- G06F 11/2028: {eliminating a faulty processor or activating a spare}
- G06F 11/2035: {without idle spare hardware}
- G06F 11/2048: {where the redundant components share neither address space nor persistent storage}
- G06F 11/2094: {Redundant storage or storage space (G06F11/2056 takes precedence)}
- G06F 16/24578: {using ranking}
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Data replication groups may be used to store data in a distributed computing environment. A data replication group may include a set of nodes executing a consensus protocol to maintain data durably. In order to increase efficiency and performance of the data replication group leadership and/or fitness information may be determined for each node of the set of nodes executing the consensus protocol. The fitness information may be based at least in part on information associated with computing resource in the distributed computing environment and one or more constraints on assignment of a role of master node in the data replication group. The master node may be responsible for advancing the data replication group.

## Claims

### Claim 1

A computer-implemented method, comprising:
determining that a virtual machine instance attached to a storage volume supported by a data replication group has been migrated from a first physical server to a second physical server, the data replication group comprising a plurality of nodes;
determining, based at least in part on a distance of a particular node of the plurality of nodes from the second physical server, to migrate the particular node closer to the physical second server;
provisioning a new node on a host that is closer to the second physical server than the particular node;
replicating a state of the particular node to the new node;
adding the new node to the data replication group; and
removing the particular node from the data replication group.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein:
the storage volume comprises a plurality of replicas; and
the data replication group stores information indicating which of the replicas is a master replica to which the virtual machine instance attaches to access the storage volume.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, further comprising causing election of a new master node for the data replication group.

### Claim 4 (depends on 3)

The computer-implemented method of claim 3, wherein causing the election of the new master node causes the plurality of nodes to select the new master node in accordance with a consensus protocol such that an individual node of the plurality of nodes delays submitting a request to become the new master node based at least in part on individual fitness information of the individual node.

### Claim 5 (depends on 3)

The computer-implemented method of claim 3, wherein causing the election of the new master node causes the plurality of nodes to elect the new master node based at least in part on a distance between the virtual machine instance and the new master node.

### Claim 6 (depends on 5)

The computer-implemented method of claim 5, wherein causing the election of the new master node causes the plurality of nodes to elect the new master node such that the new master node is within a same fault zone as a quorum of the plurality of nodes.

### Claim 7

A system, comprising:
one or more processors; and
memory including computer-executable instructions which, as a result of execution by the one or more processors, cause the system to:
determine that a computing resource attached to a volume supported by a data replication group comprising a plurality of nodes has been migrated to a host computer system; and
until specified criteria corresponding to the data replication group is met:
determine, based at least in part on locations of the plurality of nodes relative to the computing resource, a particular node of the plurality of nodes to migrate;
initialize a new node on the host computer system;
replicate a state of the particular node to the new node;
add the new node to the data replication group; and
remove the particular node from the data replication group.

### Claim 8 (depends on 7)

The system of claim 7, wherein the specified criteria is an aggregate network distance between the computing resource and the plurality of nodes being at a value relative to a threshold.

### Claim 9 (depends on 7)

The system of claim 7, wherein the plurality of nodes are distributed among a plurality of host computer systems.

### Claim 10 (depends on 7)

The system of claim 7, wherein the computer-executable instructions further cause the system to initiate a new master node selection for the data replication group.

### Claim 11 (depends on 10)

The system of claim 10, wherein the computer-executable instructions that cause the system to initiate the new master node selection further cause the system to select the new master node based at least in part on proximity of the new master node to the computing resource.

### Claim 12 (depends on 10)

The system of claim 10, wherein:
the computer-executable instructions further cause the system to estimate an expected performance increase of the data replication group if the new node is made master node of the data replication group; and
the computer-executable instructions that cause the system to initiate the new master node selection further cause the system to cause the new node to be elected as the master node based at least in part on the expected performance increase.

### Claim 13 (depends on 7)

The system of claim 7, wherein the computer-executable instructions include instructions that cause the system to initialize the new node on the host computer system further cause the system to:
select, based on a set of placement constraints, the host computer system from a plurality of host computer systems; and
transmit a placement request to the host computer system to place the new node.

### Claim 14 (depends on 13)

The system of claim 13, wherein:
the computing resource is hosted by a different computer system from the host computer system; and
the set of placement constraints include a constraint on a physical distance between the host computer system and the different computer system.

### Claim 15

A non-transitory computer-readable storage medium storing executable instructions which, as a result of being executed by one or more processors of a computer system, cause the computer system to at least:
upon migration of a virtual machine resource attached to a storage volume supported by a data replication group to a first physical host:
determine a particular node of a plurality of nodes of the data replication group to migrate closer to the virtual machine resource;
initialize a new node on a second physical host within a threshold distance of the first physical host;
copy a state of the particular node to the new node;
add the new node to the data replication group; and
remove the particular node from the data replication group.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the threshold distance is measured as a number of network hops between the first physical host and the second physical host.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the plurality of nodes is distributed across a plurality of fault zones.

### Claim 18 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the plurality of nodes is distributed across the plurality of fault zones such that a quorum of the plurality of nodes remain in communication with the virtual machine resource upon a failure of any one of the plurality of fault zones.

### Claim 19 (depends on 17)

The non-transitory computer-readable storage medium of claim 17, wherein the executable instructions further cause the computer system to, further upon the migration of the virtual machine resource, cause selection of a new master node of the data replication group.

### Claim 20 (depends on 19)

The non-transitory computer-readable storage medium of claim 19, wherein:
the virtual machine resource is located in a first fault zone of the plurality of fault zones; and
the new master node is selected at least in part due to its location in a second fault zone different from the first fault zone.
