IP Library Granted Patent US 12675329
Granted Patent B2
US 12675329 · App. 17/514,051 · Granted Jul 7, 2026

Task allocation in a cloud environment

Inventor: Manbinder Pal Singh (Coral Springs, FL)
G06F9/5038H04L67/10
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12675329
App. No.
17/514,051
Granted
Jul 7, 2026
Kind
B2
Abstract

In one aspect, an example methodology implementing the disclosed techniques includes, by a computing device, determining an average time to finish for a first task to be executed and determining whether there is a resource instance that is designated to service tasks whose average time to finish matches the average time to finish for the first task. The method also includes, responsive to a determination that there is a resource instance that is designated to service tasks whose average time to finish matches the average time to finish for the first task, determining whether the resource instance has available capacity to service the first task. The method further includes, responsive to a determination that the resource instance has available capacity to service the first task, assigning the first task to the resource instance.

Claims (65)

1 . A method executed by a computing device comprising:

receiving a first request to execute a first virtual session in a cloud computing environment;

provisioning, based on the first request, a virtual machine (VM) instance of a plurality of VM instances that is designated to service virtual sessions whose average time to finish matches an average time to finish for the first virtual session;

executing the first virtual session on the VM instance when the VM instance has available capacity to service the first virtual session;

receiving a second request to execute a second virtual session in the cloud computing environment; and

based on the second request and when there is no VM instance of the plurality of VM instances designated to service virtual sessions whose average time to finish matches an average time to finish for the second virtual session:

provisioning a group of VM instances having a largest average time to finish to minimize VM fragmentation when a number of third virtual sessions that are expected to be executed fall within the average time to finish for the second virtual session, wherein the provisioned group of VM instances is one of a plurality of groups of VM instances that has available capacity to service the second virtual session, and each group of VM instances, in the plurality of groups, have a same average time to finish; and

executing the second virtual session on one VM instance in the provisioned group of VM instances when the provisioned group of VM instances has available capacity to service the number of third virtual sessions and the second virtual session.

2 . The method of claim 1 , wherein executing the first virtual session on the VM instance is based on the average time to finish for the first virtual session.

3 . The method of claim 1 , further comprising:

receiving a third request to execute a fourth virtual session in the cloud computing environment;

provisioning, based on the third request, a VM instance that is designated to service virtual sessions whose average time to finish matches an average time to finish for the fourth virtual session; and

when there is no VM instance of the plurality of VM instances designated to service virtual sessions whose average time to finish matches the average time to finish for the fourth virtual session and there is no VM instance of the plurality of VM instances that has available capacity to service the fourth virtual session:

provisioning a new VM instance; and

executing the fourth virtual session on the new VM instance.

4 . The method of claim 3 , wherein the new VM instance services virtual sessions having an average time to finish matching the average time to finish of the fourth virtual session.

5 . The method of claim 1 , wherein provisioning the group of VM instances having the largest average time to finish is based on a number of third virtual sessions that are expected within a next average time to finish for the second virtual session.

6 . The method of claim 1 , wherein provisioning the group of VM instances having the largest average time to finish is based on historical virtual session data.

7 . The method of claim 1 , further comprising, when the provisioned group of VM instances does not have available capacity to service the number of third virtual sessions that are expected and the second virtual session:

provisioning a new VM instance; and

executing the second virtual session on the new VM instance.

8 . The method of claim 1 , wherein a categorization of the groups of VM instances that have available capacity to service the second virtual session is based on an average time to finish for the second virtual session to be executed by each VM instance in the groups of the VM instances.

9 . The method of claim 1 , wherein provisioning the group of VM instances having a largest average time to finish is based on a descending ordering of the groups of VM instances that have available capacity to service the second virtual session.

10 . The method of claim 1 , further comprising:

provisioning a second group of VM instances having a second largest average time to finish to minimize VM fragmentation when the provisioned group of VM instances having the largest average time to finish has no available capacity to service the number of third virtual sessions and the second virtual session, wherein the second group is one of a plurality of groups of VM instances that has available capacity to service the second virtual session.

11 . A system comprising:

a memory; and

one or more processors in communication with the memory and configured to:

receive a first request to execute a first virtual session in a cloud computing environment;

provision, based on the first request, a virtual machine (VM) instance of a plurality of VM instances that is designated to service virtual sessions whose average time to finish matches an average time to finish for the first virtual session;

execute the first virtual session on the VM instance when the VM instance has available capacity to service the first virtual session;

receive a second request to execute a second virtual session in the cloud computing environment; and

based on the second request and when there is no VM instance of the plurality of VM instances designated to service virtual sessions whose average time to finish matches the average time to finish for the second virtual session:

provision a group of VM instances having a largest average time to finish to minimize VM fragmentation when a number of third virtual sessions that are expected to be executed fall within the average time to finish for the second virtual session, wherein the provisioned group of VM instances is one of a plurality of groups of VM instances that has available capacity to service the second virtual session, and each group of VM instances, in the plurality of groups, have a same average time to finish; and

execute the second virtual session on one VM instance in the provisioned group of VM instances when the provisioned group of VM instances has available capacity to service the number of third virtual sessions and the second virtual session.

12 . The system of claim 11 , wherein executing the first virtual session on the VM instance is based on the average time to finish for the first virtual session.

13 . The system of claim 11 , wherein the one or more processors are further configured to:

receive a third request to execute a fourth virtual session in the cloud computing environment;

provision, based on the third request, a VM instance designated to service virtual sessions whose average time to finish matches an average time to finish for the fourth virtual session; and

when there is no VM instance of the plurality of VM instances designated to service virtual sessions whose average time to finish matches the average time to finish for the fourth virtual session and there is no VM instance of the plurality of VM instances that has available capacity to service the fourth virtual session:

provision a new VM instance; and

execute the fourth virtual session on the new VM instance.

14 . The system of claim 13 , wherein the new VM instance services virtual sessions having an average time to finish matching the average time to finish of the fourth virtual session.

15 . The system of claim 13 , wherein provisioning the group of VM instances having the largest average time to finish is based on a number of third virtual sessions that are expected within a next average time to finish for the second virtual session.

16 . The system of claim 13 , wherein provisioning the group of VM instances having the largest average time to finish is based on historical virtual session data.

17 . The system of claim 13 , wherein the one or more processors are further configured to, when the provisioned group of VM instances does not have available capacity to service the number of third virtual sessions that are expected and the second virtual session:

provision a new VM instance; and

execute the second virtual session on the new VM instance.

18 . A non-transitory computer-readable medium storing program instructions that are executable by a computing device to:

receive a first request to execute a first virtual session in a cloud computing environment;

provision, based on the first request, a virtual machine (VM) instance of a plurality of VM instances designated to service virtual sessions whose average time to finish matches an average time to finish for the first virtual session;

execute the first virtual session on the VM instance when the VM instance has available capacity to service the first virtual session;

receive a second request to execute a second virtual session in the cloud computing environment; and

based on the second request and when there is no VM instance of the plurality of VM instances designated to service virtual sessions whose average time to finish matches the average time to finish for the second virtual session:

provision a group of VM instances having a largest average time to finish to minimize VM fragmentation when a number of third virtual sessions that are expected to be executed fall within the average time to finish for the second virtual session, wherein the provisioned group of VM instances is one of a plurality of groups of VM instances that has available capacity to service the second virtual session, and each group of VM instances, in the plurality of groups, have a same average time to finish; and

execute the second virtual session on one VM instance in the provisioned group of VM instances when the provisioned group of VM instances has available capacity to service the number of third virtual sessions and the second virtual session.

19 . The non-transitory computer-readable medium of claim 18 , wherein the program instructions are further executable to:

receive a third request to execute a second virtual session in the cloud computing environment;

provision, based on the third request, a VM instance that is designated to service virtual sessions whose average time to finish matches an average time to finish for the second virtual session; and

when there is no VM instance of the plurality of VM instances designated to service virtual sessions whose average time to finish matches the average time to finish for the second virtual session and there is no VM instance of the plurality of VM instances that has available capacity to service the second virtual session:

provision a new VM instance; and

execute the second virtual session on the new VM instance.

20 . The non-transitory computer-readable medium of claim 19 , wherein the program instructions are further executable to, when the provisioned group of VM instances does not have available capacity to service the number of third virtual sessions that are expected and the second virtual session:

provision a new VM instance; and

execute the second virtual session on the new VM instance.