IP Library Granted Patent US 12,333,327
Granted Patent B2
US 12,333,327 · App. 18/222,202 · Granted Jun 17, 2025

Coordinated container scheduling for improved resource allocation in virtual computing environment

Inventor: Jeremy Warner Olmsted-Thompson (Seattle, WA)
Assignee: Google LLC
G06F9/45558G06F9/4881G06F9/5077G06F2009/45595
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 12,333,327
App. No.
18/222,202
Granted
Jun 17, 2025
Kind
B2
Abstract

The technology provides for allocating an available resource in a computing system by bidirectional communication between a hypervisor and a container scheduler in the computing system. The computing system for allocating resources includes one or more processors configured to receive a first scheduling request to initiate a first container on a first virtual machine having a set of resources. A first amount of resources is allocated from the set of resources to the first container on the first virtual machine in response to the first scheduling request. A hypervisor is notified in a host of the first amount of resources allocated to the first container. A second amount of resources from the set of resources is allocated to a second virtual machine in the host. A reduced amount of resources available in the set of resources is determined. A container scheduler is notified by the hypervisor for the reduced amount of resources of the set of resources available on the first virtual machine.

Claims (45)

1. A method for allocating resources in a computing system, comprising:

allocating, by one or more processors, a first amount of resources from a set of resources to a first container on a first virtual machine in response to a first scheduling request;

notifying, by the one or more processors, a hypervisor in a host of the first amount of resources allocated to the first container;

allocating, by the one or more processors and based on the hypervisor reclaiming an unused amount of resources of the set of resources on the host, a second amount of resources from the unused amount of resources to a second virtual machine in the host; and

in response to the unused amount of resources being available in the set of resources on the host, notifying the hypervisor in real time by a container scheduler about the unused amount of resources of the set of resources available on the first virtual machine and the second virtual machine, wherein the unused amount of resources is dynamically rearranged or allocated by the hypervisor; and

in response to a full amount of the set of the resources on the host being consumed, notifying, by the one or more processors, the container scheduler when the full amount of the set of resources on the host is consumed.

2. The method of claim 1 , further comprising:

receiving, by the one or more processors, a second scheduling request to initiate a second container on the first virtual machine; and

allocating, by the one or more processors, a third amount of resources from the unused amount of resources to the second container on the first virtual machine in response to the second scheduling request.

3. The method of claim 2 , further comprising:

notifying, by the one or more processors, the hypervisor of the third amount of resources from the unused amount of resources allocated to the second container; and

allocating, by the one or more processors, a fourth amount of resources from the unused amount of resources to a third virtual machine in the host.

4. The method of claim 1 , wherein the reclaiming is based on determining the set of resources comprises unconsumed resource capacity.

5. The method of claim 1 , wherein the first virtual machine is a virtual machine registered with a container scheduling system.

6. The method of claim 1 , wherein the container scheduler and the hypervisor are both controlled by a cloud service provider.

7. The method of claim 1 , wherein receiving the first scheduling request further comprises:

assigning, by the one or more processors, an upper bound of the set of resources on the first virtual machine; and

notifying, by the one or more processors, the hypervisor about the upper bound of the set of resources on the first virtual machine.

8. The method of claim 1 , wherein notifying the first virtual machine or the container scheduler about the unused amount of resources further comprises notifying the first virtual machine or the container scheduler by the hypervisor about the unused amount of resources.

9. The method of claim 1 , wherein allocating the first amount of resources further comprises utilizing a balloon driver to allocate the resources.

10. The method of claim 1 , wherein receiving the first scheduling request for scheduling the first container further comprises:

checking, by the one or more processors, a workload consumed in the first container; and

maintaining, by the one or more processors, the workload below the first amount of resources as requested.

11. The method of claim 1 , wherein the container scheduler and the hypervisor are configured to communicate bidirectionally.

12. The method of claim 1 , wherein the first container is initiated in a pod deployed in the first virtual machine.

13. The method of claim 1 , wherein the unused amount of resources is monitored in real time by the container scheduler.

14. A computing system for allocating resources, comprising:

one or more processors configured to:

allocate a first amount of resources from a set of resources to a first container on a first virtual machine in response to a first scheduling request;

notify a hypervisor in a host of the first amount of resources allocated to the first container;

allocate, based on the hypervisor reclaiming an unused amount of resources of the set of resources on the host, a second amount of resources from the unused amount of resources to a second virtual machine in the host;

in response to the unused amount of resources being available in the set of resource on the host, notify the hypervisor in real time by a container scheduler about the unused amount of resources of the set of resources available on the first virtual machine and the second virtual machine, wherein the unused amount of resources is dynamically rearranged or allocated by the hypervisor; and

in response to a full amount of the set of the resources on the host being consumed, notify the container scheduler by the hypervisor when the full amount of the set of resources on the host is consumed.

15. The computing system of claim 14 , wherein the one or more processors are further configured to:

receive a second scheduling request to initiate a second container on the first virtual machine; and

allocate a third amount of resources from the unused amount of resources to the second container on the first virtual machine in response to the second scheduling request.

16. The computing system of claim 15 , wherein the one or more processors are further configured to:

notify the hypervisor of the third amount of resources from the unused amount of resources allocated to the second container; and

allocate a fourth amount of resources from the unused amount of resources to a third virtual machine in the host.

17. The computing system of claim 14 , wherein reclaiming the unused amount of resources further causes the hypervisor to determine the set of resources comprises unconsumed resource capacity.

18. The computing system of claim 14 , wherein the container scheduler and the hypervisor are both controlled by a cloud service provider.

19. The computing system of claim 14 , wherein the unused amount of resources is monitored in real time by the container scheduler.

20. The computing system of claim 14 , wherein receiving the first scheduling request for scheduling the first container further causes the one or more processors to:

check a workload consumed in the first container; and

maintain the workload below the first amount of resources as requested.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 17, 2023
From: OLMSTED-THOMPSON, JEREMY WARNER
To: GOOGLE LLC
Reel/Frame 064281/0114 →
Continuity (2)
Continuation 17101714 · Nov 23, 2020
Related Publication 20230393879A1 · Dec 7, 2023
References Cited (42)
US 8359451B2 · Chen et al. · 2013 [cited by applicant]
US 8788739B2 · Chang et al. · 2014 [cited by applicant]
US 9250827B2 · Beveridge · 2016 [cited by applicant]
US 9501224B2 · Lagar Cavilla et al. · 2016 [cited by applicant]
US 9766945B2 · Gaurav et al. · 2017 [cited by applicant]
US 9779015B1 · Oikarinen et al. · 2017 [cited by applicant]
US 9785460B2 · Zheng · 2017 [cited by applicant]
US 9817756B1 · Jorgensen · 2017 [cited by applicant]
US 10162658B2 · Nicholas et al. · 2018 [cited by applicant]
US 10228983B2 · Antony et al. · 2019 [cited by applicant]
US 10298670B2 · Ben-Shaul et al. · 2019 [cited by applicant]
US 10481932B2 · Sundararaman et al. · 2019 [cited by applicant]
US 10761761B2 · Zhuo et al. · 2020 [cited by applicant]
US RE48714E · Crouchman et al. · 2021 [cited by applicant]
US 20120324441A1 · Gulati et al. · 2012 [cited by applicant]
US 20140137104A1 · Nelson et al. · 2014 [cited by applicant]
US 20140189684A1 · Zaslavsky et al. · 2014 [cited by applicant]
US 20160099884A1 · Boss et al. · 2016 [cited by applicant]
US 20160124773A1 · Gaurav et al. · 2016 [cited by applicant]
US 20160380905A1 · Wang et al. · 2016 [cited by applicant]
US 20170075617A1 · Oshins · 2017 [cited by applicant]
US 20180074855A1 · Kambatla · 2018 [cited by applicant]
US 20180285164A1 · Hu et al. · 2018 [cited by applicant]
US 20190026030A1 · Yang et al. · 2019 [cited by applicant]
US 20190121660A1 · Sato et al. · 2019 [cited by applicant]
US 20190171472A1 · Wyble et al. · 2019 [cited by applicant]
US 20200174821A1 · Iliopoulos et al. · 2020 [cited by applicant]
US 20200264913A1 · Rosa, Jr. · 2020 [cited by applicant]
US 20200351650A1 · Maria · 2020 [cited by applicant]
US 20210089361A1 · Rafey et al. · 2021 [cited by applicant]
US 20210117220A1 · Zu et al. · 2021 [cited by applicant]
US 20210191751A1 · Park et al. · 2021 [cited by applicant]
US 20210248016A1 · Freeman et al. · 2021 [cited by applicant]
US 20210342188A1 · Novakovic et al. · 2021 [cited by applicant]
US 20210349749A1 · Guha · 2021 [cited by applicant]
US 20210382632A1 · Dontu et al. · 2021 [cited by applicant]
US 20220004431A1 · Doudali et al. · 2022 [cited by applicant]
US 20220091900A1 · Ito · 2022 [cited by applicant]
JP 6374845B2 · 2018 [cited by applicant]
International Preliminary Report on Patentability for International Application No. PCT/US2021/042287 dated Jun. 1, 2023. 10 pages. [cited by applicant]
Chandra et al. Deterministic Container Resource Management in Derivative Clouds. Apr. 17, 2018. 2018 IEEE International Conference on Cloud Engineering (IC2E), IEEE, pp. 79-89, DOI: 10.1109/IC2E.2018.00030. [cited by applicant]
International Search Report and Written Opinion for International Application No. PCT/US2021/042287 dated Nov. 5, 2021. 17 pages. [cited by applicant]
Cited By (1)
US 12,719,753