# US 2019/0356530 A1 · Moving nodes in a distributed system

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

- Number: US 2019/0356530 A1
- Document ID: US20190356530A1
- Status: Published application
- Kind: A1
- Application number: 16/531,465
- Filed: 2019-08-05
- Published: 2019-11-21
- Earliest claimed: 2014-03-31
- Assignees: Amazon Technologies, Inc.
- Applicants: Amazon Technologies, Inc.
- Inventors: Paul William Berg; Christopher Dunn; Alexander Julian Tribble; Tristan Daniel Fries Wilson; Zachary Jared Wiggins
- Web page: https://patentgrep.com/patent/US20190356530A1

## CPC

- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1031: Controlling of the operation of servers by a load balancer, e.g. adding or removing servers that serve requests
- H04L 67/101: based on network conditions
- H04L 67/1027: Persistence of sessions during load balancing
- H04L 67/148: Migration or transfer of sessions
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

Techniques for improving communications efficiency between pairs of communication nodes running within a computer system are described herein. Potential locations for placing a communication node are evaluated using one or more fitness values wherein the fitness value is based at least in part on one or more system metrics associated with placing a communication node in the potential location. If an improved location is found based on the fitness value, the communication node may be migrated to the new location, thus improving system efficiency.

## Claims

### Claim 1

A computer-implemented method, comprising:
obtaining a network latency metric measured between an endpoint node in a network and a client device, wherein the endpoint node includes a resource provided by a first datacenter;
determining a fitness value associated with a migration of the endpoint node to a new location within the network based at least in part on the network latency;
selecting, based at least in part on the fitness value indicating an improvement in network latency metric for the endpoint node, the new location to be a migration location within the network for the endpoint node; and
performing an operation that causes the endpoint node to be migrated to the migration location, wherein the migration location comprises a second datacenter.

### Claim 2 (depends on 1)

The computer-implemented method of claim 1, wherein the client device comprises a mobile device.

### Claim 3 (depends on 1)

The computer-implemented method of claim 1, wherein at least one of the first datacenter or the second datacenter comprises a datacenter rack with limited capacity due to at least one limitation on storage, processing power, network bandwidth, or CPU cycles.

### Claim 4 (depends on 1)

The computer-implemented method of claim 1, wherein the fitness value is determined at least in part based on resource availability of at least one of the first datacenter or the second datacenter.

### Claim 5

A system, comprising:
one or more processors; and
memory including executable instructions that, as a result of execution by the one or more processors, cause a computer system to at least:
determine, using a fitness function that aggregates a network performance metric and a constraint parameter, a fitness value associated with migrating a service of a network from a first location to one or more new locations within the network;
select a candidate location from the one or more new locations for the service, the candidate location selected based at least in part on the one or more new locations satisfying a placement improvement criteria that is based at least in part on the fitness value; and
migrate the service to the candidate location.

### Claim 6 (depends on 5)

The system of claim 5, the first location comprises a first datacenter, and the candidate location comprises a second datacenter.

### Claim 7 (depends on 5)

The system of claim 5, wherein the first location comprises a first virtual machine, and the candidate location comprises a second virtual machine.

### Claim 8 (depends on 5)

The system of claim 5, wherein the network performance metric comprises a network latency between the service and a client device.

### Claim 9 (depends on 5)

The system of claim 5, wherein the network performance metric comprises at least one of: network latency, network bandwidth, network route complexity, service redundancy, resource availability, physical distance, or logical distance.

### Claim 10 (depends on 5)

The system of claim 5, wherein the executable instructions that cause the system to determine the fitness value further cause the system to:
evaluate, based at least in part on the network performance, a utility function to produce the fitness value.

### Claim 11 (depends on 10)

The system of claim 10, wherein the utility function is further based at least in part on migration costs which comprise at least one of: host machine capacity, cost of service host machine capacity, service host machine central processing unit utilization, or service host machine memory utilization.

### Claim 12 (depends on 10)

The system of claim 10, wherein the utility function is further based at least in part on security costs which include at least one of: a number of network connection steps between connected services or network connection types between connected services.

### Claim 13 (depends on 5)

The system of claim 5, wherein the service belongs to a set of communication nodes which contains at least one endpoint communication node and one or more communication nodes configured to connect to the at least one endpoint communication node.

### Claim 14 (depends on 5)

The system of claim 5, wherein the executable instructions which cause the computer system to migrate the first communication node to the candidate location further include executable instructions that cause the computer system to instantiate one or more new services corresponding to the service at the candidate location.

### Claim 15

A non-transitory computer-readable storage medium having stored thereon executable instructions that, as a result of execution by one or more processors of a computer system, cause the computer system to at least:
determine, using a fitness function based at least in part on a system metric between a client device and a service of a network, a fitness value associated with migrating the service from a first location to one or more new locations within the network, wherein the system metric comprises network latency between the client device and the service; and
place the service in a new location of the one or more new locations within the network, the new location based at least in part on satisfying a placement improvement criteria that is based at least in part on the fitness value.

### Claim 16 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the first location comprises a first datacenter, rack, host, or virtual machine, and the new location comprises a second datacenter, rack, host, or virtual machine.

### Claim 17 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the system metric further comprises at least one of network bandwidth, network route complexity, service redundancy, resource availability, physical distance, or logical distance.

### Claim 18 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the placement improvement criteria comprises an improvement in the network latency.

### Claim 19 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the first location comprise an endpoint of the service.

### Claim 20 (depends on 15)

The non-transitory computer-readable storage medium of claim 15, wherein the instructions, when executed by one or more processors of a computer system, cause the computer system to place the service in a new location further cause the computer system to:
distribute the service among multiple instances; and
place at least one instance of the multiple instances in the new location.
