# US 11,907,769 B2 · Method and a system for managing the computing resources in data regions

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

- Number: US 11,907,769 B2
- Document ID: US11907769B2
- Status: Granted
- Kind: B2
- Application number: 17/374,741
- Filed: 2021-07-13
- Published: 2022-06-23
- Granted: 2024-02-20
- Earliest claimed: 2020-12-21
- Assignees: Amadeus S.A.S.
- Applicants: Amadeus S.A.S.
- Inventors: Michel Demazeau; Jacques Bonaud; Jean Michel Collomb; Vincent Boulineau
- Web page: https://patentgrep.com/patent/US11907769B2

## CPC

- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5072: {Grid computing}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- G06F 9/52: Program synchronisation; Mutual exclusion, e.g. by means of semaphores
- G06F 2209/505: Clust
- G06F 2209/506: Constraint
- G06F 2209/508: Monitor
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

The present invention describes a system and a method for dynamically optimising the computing resources allocated to a client application in different data regions of one or more service providers. A number of monitoring modules are provided in each data regions, which are configured to collect operational information from each data region, which is communicated to the other data regions. As such, all data regions are aware of the operational environment of the other data regions.

## Claims

### Claim 1

A system for managing the allocation of computing resources to a client application in data regions of one or more service providers, each data region comprising a plurality of virtual machine (VM) clusters, each comprising a number of VM instances configured for running at least a component of the client application, the system comprising:
one or more processors;
a plurality of monitoring modules executed by the one or more processors and communicatively coupled with one another, each monitoring module associated with a VM cluster in a data region and configured to monitor a set of operational parameters of the data region operating environment and to collect corresponding operational information from the service provider;
wherein one of the monitoring modules in each data region is selected as a local leader, the local leader is configured to communicate the operational information to the local leaders of the other data regions, wherein one of the local leaders is selected as a global leader, the global leader is configured to synchronise the communication of information between the local leaders and synchronise write operations to a shared operational database configured to store at least the operational information communicated by each of the local leaders and a set of optimisation constraints identifying target values for the operational parameters;
wherein, upon detecting a change in a data region operating environment cause at least one of the operational parameters to violate at least one of the optimisation constraints, each local leader is configured to generate an optimisation proposal comprising a set of actions to be performed by one or more of the local leaders for optimising the allocation of computing resources in the different data regions, the optimisation proposal is submitted to a vote to the local leaders; and
wherein, upon the optimisation proposal is accepted by a majority of the local leaders, each local leader identified in the optimisation proposal is configured to perform the corresponding actions in the corresponding data region, otherwise, if the optimisation proposal is rejected, then a new optimisation plan is generated.

### Claim 2 (depends on 1)

The system of claim 1, wherein each monitoring module comprises a resource watching module configured to communicate with a cloud service provider to collect the operational information, and accordingly, convert the data format of the collected operational information to a common data format accessible by each of the plurality of monitoring modules.

### Claim 3 (depends on 1)

The system of claim 1, wherein the operational information comprises at least one of computing resource availability, architecture of the data region, and pricing of computing resources.

### Claim 4 (depends on 1)

The system of claim 1, wherein each monitoring module comprises a resource action module configured to communicate with the corresponding service provider to perform the actions identified in the optimisation plan.

### Claim 5 (depends on 1)

The system of claim 1, wherein the actions identified in the optimisation plan comprise at least one of the allocation of new resources, reallocation of computing resources, increase or decrease capacity in a VM cluster, or replace non-performing virtual machine instances in a VM cluster.

### Claim 6 (depends on 1)

The system of claim 1, wherein the monitoring module comprises an optimisation module configured for generating an optimisation plan based on the set of optimisation constraints.

### Claim 7 (depends on 6)

The system of claim 6, wherein the set of optimisation constraints comprise at least one of a target availability of computing resource in a data region, target pricing of the computing resources, target distribution of computing resources between different regions and/or different VM clusters.

### Claim 8 (depends on 6)

The system of claim 6, wherein the optimisation module is configured to obtain the information associated with the optimisation constraints from the shared operational database.

### Claim 9 (depends on 6)

The system of claim 6, wherein the optimisation plan is generated based on a cost optimisation function based on a sum of (i) a first parameter proportional to a price associated with the use of all virtual machines, (ii) a second parameter proportional to a difference between an actual number of virtual machines and an expected number of virtual machines, and (iii) a third parameter which is proportional to a rate of change of the number of virtual machines.

### Claim 10 (depends on 6)

The system of claim 6, wherein monitoring modules of a data region are organised into a local cluster, and the local leaders of the data regions are organised in a global cluster.

### Claim 11 (depends on 10)

The system of claim 10, wherein the communication between the monitoring modules in the local clusters and the global cluster is governed by a distributed consensus protocol.

### Claim 12 (depends on 11)

The system of claim 11, wherein the consensus protocol is any one of Paxos, raft, or an equivalent consensus algorithm.

### Claim 13 (depends on 11)

The system of claim 11, wherein each local cluster comprises at least three monitoring modules each associated with a corresponding VM cluster.

### Claim 14 (depends on 11)

The system of claim 11, wherein each monitoring module comprises a clustering module configured to establish communication with the other monitoring modules in the local and/or global cluster for the exchange of information and implementation of the distributed consensus algorithm.

### Claim 15 (depends on 1)

The system of claim 1, wherein at least one of the data regions is associated with a different service provider.

### Claim 16 (depends on 1)

The system of claim 1, wherein each monitoring module is instantiated and run in one or more of the VM instances of the corresponding monitored VM cluster.

### Claim 17

A method for managing the allocation of computing resources to a client application in data regions of one or more service providers, each data region comprising a plurality of virtual machine (VM) clusters, each comprising a number of VM instances configured for running at least a component of the client application, the method comprising:
providing a plurality of monitoring modules communicatively coupled with one another, each monitoring module is associated with a VM cluster in a data region and is configured to monitor a set of operational parameters of the data region operating environment and to collect corresponding operational information from the service provider;
selecting one of the monitoring modules in each data region as a local leader, the local leader is configured to communicate the operational information to the local leaders of the other data regions;
selecting one of the local leaders as a global leader, the global leader is configured for synchronising the communication of information between the local leaders and synchronise write operations to a shared operational database configured to store at least the operational information communicated by each of the local leaders and a set of optimisation constraints identifying target values for the operational parameters;
wherein, upon detecting a change in data region operating environment cause at least one of the operational parameters to violate at least one of the optimisation constraints, each local leader is configured to generate an optimisation proposal comprising a set of actions to be performed by one or more of the local leaders for optimising the allocation of computing resources in the different data regions, the optimisation proposal is submitted to a vote to the local leaders; and
wherein, upon the optimisation proposal is accepted by a majority of the local leaders, each local leader identified in the optimisation proposal is configured to perform the corresponding actions in the corresponding data region, otherwise, if the optimisation proposal is rejected, then a new optimisation plan is generated.
