# US 12,184,559 B2 · Reducing placement conflicts between concurrent virtual machine allocations

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

- Number: US 12,184,559 B2
- Document ID: US12184559B2
- Status: Granted
- Kind: B2
- Application number: 18/026,295
- Filed: 2021-09-14
- Published: 2023-11-09
- Granted: 2024-12-31
- Earliest claimed: 2020-09-14
- Assignees: Microsoft Technology Licensing, LLC
- Applicants: Microsoft Technology Licensing, LLC
- Inventors: Abhisek Pan; Eric Zhao Hao; Esaias Englebertus Greeff
- Web page: https://patentgrep.com/patent/US12184559B2

## CPC

- H04L 41/0893: Assignment of logical groups to network elements
- G06F 9/45558: {Hypervisor-specific management and integration aspects}
- H04L 41/0894: Policy-based network configuration management
- H04L 47/745: {Reaction in network}
- G06F 2009/4557: {Distribution of virtual machine instances; Migration and load balancing}
- G06F 2009/45595: {Network integration; Enabling network access in virtual machine instances}
- H04L 47/74: measures in reaction to resource unavailability
- 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

The present disclosure relates to systems, methods, and computer readable media for reducing placement conflicts between allocation agents tasked with allocating computing resources on a computing zone. For example, systems disclosed herein may identify placement conflicts between multiple allocation agents processing incoming placement requests on a computing zone. The systems disclosed herein may further modify a placement policy based on the number of placement conflicts by reducing one or more restrictions on rules for allocating computing resources. For example, the systems disclosed herein may enlarge a placement zone of server nodes when allocating computing resources to prevent or otherwise reduce conflicts between multiple allocation agents implementing the same placement policies. By reducing allocation restrictions and enlarging a placement zone, the systems described herein may significantly reduce placement conflicts while still optimizing placement of services on nodes of a cloud computing system.

## Claims

### Claim 1

A method, comprising:
maintaining a placement store including a record of allocated computing resources on a plurality of computing nodes of a computing zone, the computing zone including a plurality of agent allocators configured to concurrently allocated resources in response to incoming placement requests in accordance with a placement policy applicable to each agent allocator of the plurality of agent allocators;
determining, based on information from the record of allocated computing resources, that a number of placement conflicts between the plurality of agent allocators with respect to incoming placement requests is greater than or equal to a threshold number of placement conflicts for a predetermined period of time;
based on determining that the number of placement conflicts is greater than or equal to the threshold number of placement conflicts, modifying the placement policy applicable to each agent allocator of the plurality of agent allocators by decreasing one or more restrictions from the placement policy associated with allocating resources on the plurality of computing nodes of the computing zone; and
causing the plurality of agent allocators to allocate resources on the plurality of computing nodes in accordance with the modified placement policy applicable to each agent allocator of the plurality of agent allocators.

### Claim 2 (depends on 1)

The method of claim 1, wherein maintaining the placement store comprises storing pairings of service identifiers and node identifiers indicating a placement of one or more services on corresponding computing nodes of the computing zone.

### Claim 3 (depends on 1)

The method of claim 1, further comprising identifying the placement conflicts based on detected conflicts between attempted placement of services by one or more of the plurality of agent allocators and previously placed services indicated within the record of allocated computing resources.

### Claim 4 (depends on 1)

The method of claim 1, wherein determining that the number of placement conflicts is greater than or equal to the threshold number of placement conflicts comprises detecting a threshold percentage of commit failures for incoming placement requests by the plurality of agent allocators.

### Claim 5 (depends on 1)

The method of claim 1, wherein the placement policy includes a set of rules executable by each agent allocator of the plurality of agent allocators to:
identify candidate nodes for resource allocation by identifying a subset of computing nodes from the plurality of computing nodes of the computing zone; and
randomly allocate resources for the incoming placement requests on the identified candidate nodes.

### Claim 6 (depends on 5)

The method of claim 5, wherein modifying the placement policy comprises modifying the set of rules to cause the plurality of agent allocators to expand the candidate nodes to include the subset of computing nodes and additional computing nodes from the plurality of computing nodes of the computing zone.

### Claim 7 (depends on 6)

The method of claim 6, wherein modifying the set of rules comprises discounting one or more rules from the set of rules to expand the candidate nodes eligible for resource allocation.

### Claim 8 (depends on 1)

The method of claim 1, further comprising:
identifying, from the incoming placement requests, a first set of placement requests for a first type of resource and a second set of placement requests for a second type of resource; and
determining that the number of placement conflicts being greater than or equal to the threshold number of placement conflicts are associated with the first set of placement requests,
wherein modifying the placement policy comprises selectively decreasing one or more restrictions from the placement policy for the first set of placement requests without decreasing one or more restrictions from the placement policy for the second set of placement requests.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
determining that an updated number of placement conflicts between the plurality of agent allocators continues to be greater than or equal to the threshold number of placement conflicts under the modified placement policy; and
based on determining that the updated number of placement conflicts continues to be greater than or equal to the threshold number of placement conflicts, further modifying the placement policy by decreasing one or more additional restrictions from the placement policy.

### Claim 10 (depends on 1)

The method of claim 1, further comprising:
determining that an updated number of placement conflicts between the plurality of agent allocators has decreased by a threshold amount under the modified placement policy; and
based on determining that the updated number of placement conflicts has decreased by the threshold amount, causing the plurality of agent allocators to revert back to the placement policy.

### Claim 11 (depends on 1)

The method of claim 1, wherein causing the plurality of agent allocators to allocate resources comprising causing each agent allocator of the plurality of agent allocators to concurrently process placement requests and allocate resources on the plurality of computing nodes of the computing zone in accordance with the modified placement policy.

### Claim 12

A system, comprising:
one or more processors;
memory in electronic communication with the one or more processors;
instructions stored in the memory, the instructions being executable by the one or more processors to:
maintain a placement store including a record of allocated computing resources on a plurality of computing nodes of a computing zone, the computing zone including a plurality of agent allocators configured to concurrently allocate resources in response to incoming placement requests in accordance with a placement policy applicable to each agent allocator of the plurality of agent allocators;
determine, based on information from the record of allocated computing resources, that a number of placement conflicts between the plurality of agent allocators with respect to incoming placement requests is greater than or equal to a threshold number of placement conflicts for a predetermined period of time;
based on determining that the number of placement conflicts is greater than or equal to the threshold number of placement conflicts, modify the placement policy applicable to each agent allocator of the plurality of agent allocators by decreasing one or more restrictions from the placement policy associated with allocating resources on the plurality of computing nodes of the computing zone; and
cause the plurality of agent allocators to allocate resources on the plurality of computing nodes in accordance with the modified placement policy applicable to each agent allocator of the plurality of agent allocators.

### Claim 13 (depends on 12)

The system of claim 12, wherein the placement policy includes a set of rules executable by the plurality of agent allocators to:
identify candidate nodes for resource allocation by identifying a subset of computing nodes from the plurality of computing nodes of the computing zone; and
randomly allocate resources for the incoming placement requests on the identified candidate nodes.

### Claim 14 (depends on 13)

The system of claim 13,
wherein modifying the placement policy comprises modifying the set of rules to cause each agent allocator of the plurality of agent allocators to expand the candidate nodes to include the subset of computing nodes and additional computing nodes from the plurality of computing nodes of the computing zone, and
wherein modifying the set of rules comprises discounting one or more rules from the set of rules to expand the candidate nodes eligible for resource allocation.

### Claim 15 (depends on 12)

The system of claim 12, further comprising instructions being executable by the one or more processors to:
identify, from the incoming placement requests, a first set of placement requests for a first type of resource and a second set of placement requests for a second type of resource; and
determine that the number of placement conflicts being greater than or equal to the threshold number of placement conflicts are associated with the first set of placement requests,
wherein modifying the placement policy comprises selectively decreasing one or more restrictions from the placement policy for the first set of placement requests without decreasing one or more restrictions from the placement policy for the second set of placement requests.

### Claim 16 (depends on 12)

The system of claim 12, wherein causing the plurality of agent allocators to allocate resources comprises causing each agent allocator of the plurality of agent allocators to concurrently process placement requests and allocate resources on the plurality of computing nodes of the computing zone in accordance with the modified placement policy.

### Claim 17

A non-transitory computer readable medium storing instructions thereon that, when executed by at least one processor, causes the at least one processor to:
maintain a placement store including a record of allocated computing resources on a plurality of computing nodes of a computing zone, the computing zone including a plurality of agent allocators configured to concurrently allocate resources in response to incoming placement requests in accordance with a placement policy applicable to each agent allocator of the plurality of agent allocators;
determine, based on information from the record of allocated computing resources, that a number of placement conflicts between the plurality of agent allocators with respect to incoming placement requests is greater than or equal to a threshold number of placement conflicts for a predetermined period of time; and
based on determining that the number of placement conflicts is greater than or equal to the threshold number of placement conflicts, modify the placement policy applicable to each agent allocator of the plurality of agent allocators by decreasing one or more restrictions from the placement policy associated with allocating resources on the plurality of computing nodes of the computing zone; and
cause the plurality of agent allocators to allocate resources on the plurality of computing nodes in accordance with the modified placement policy applicable to each agent allocator of the plurality of agent allocators.

### Claim 18 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein maintaining the placement store comprises storing pairings of service identifiers and node identifiers indicating a placement of one or more services on corresponding computing nodes of the computing zone.

### Claim 19 (depends on 17)

The non-transitory computer readable medium of claim 17, wherein the placement policy includes a set of rules executable by the plurality of agent allocators to:
identify candidate nodes for resource allocation by identifying a subset of computing nodes from the plurality of computing nodes of the computing zonc; and
randomly allocate resources for the incoming placement requests on the identified candidate nodes.

### Claim 20 (depends on 19)

The non-transitory computer readable medium of claim 19,
wherein modifying the placement policy comprises modifying the set of rules to cause the plurality of agent allocators to expand the candidate nodes to include the subset of computing nodes and additional computing nodes from the plurality of computing nodes of the computing zone; and
wherein modifying the set of rules comprises discounting one or more rules from the set of rules to expand the candidate nodes eligible for resource allocation.
