IP Library Granted Patent US 12,504,998
Granted Patent B2
US 12,504,998 · App. 19/049,229 · Granted Dec 23, 2025

Methods and systems for dynamically optimizing and modifying allocation of virtual resources to processes

Inventors: Zhiming Shen (Sunnyvale, CA); Hakim Weatherspoon (Ithaca, NY); Robbert Van Renesse (Ithaca, NY)
G06F9/5077G06F9/45558G06F9/4881G06F2009/4557
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,504,998
App. No.
19/049,229
Granted
Dec 23, 2025
Kind
B2
Abstract

A method for dynamically optimizing and modifying allocation of virtual resources to processes includes allocating, by a first hypervisor, a first amount of a first virtual resource to a process executing in a virtual machine on a first machine. An agent, in communication with a resource allocation process executing in the virtual machine, determines a second amount of the first virtual resource to be utilized by the process. A scheduler receives an identification of the determined second amount and directs migration of the process to a second machine. A second hypervisor executing on the second machine allocates a third amount of the first virtual resource, the third amount substantially similar to the second amount. The method includes communicating, by the resource allocation process, to the process, that the first amount of the first virtual resource is allocated to the at least one process.

Claims (58)

1 . A method for dynamically optimizing and modifying allocation of virtual resources to containerized processes, the method comprising:

allocating, by a first hypervisor executing on a first machine, a first amount of a first virtual resource to a container image executing on the first machine and including a containerized process, the first virtual resource associated with at least one physical resource of the first machine;

determining, by an agent in communication with a resource allocation process executing in an instance of the container image, a second amount of the first virtual resource to be utilized by the containerized process;

transmitting, by the agent to a scheduler, an identifier of the determined second amount;

determining, by the scheduler, that the determined second amount is different than the allocated first amount;

directing, by the scheduler, migration of the containerized process, during execution of the containerized process, to a second machine based upon the determined second amount;

allocating, by a second hypervisor executing on the second machine, a third amount of the first virtual resource, wherein the third amount is the same as the determined second amount;

directing, by the scheduler, a pause in execution of a first subset of threads in a plurality of threads of the containerized process;

directing, by the scheduler, during continued execution of a second subset of threads in the plurality of threads of the containerized process, migration of the containerized process to the second machine;

directing, by the scheduler, continued execution of the first subset and the second subset of threads in the plurality of threads of the containerized process upon completion of the migration of the containerized process to the second machine; and

communicating, by the resource allocation process, to the containerized process, that the first amount of the first virtual resource is allocated to the containerized process.

2 . The method of claim 1 , wherein determining the second amount further comprises determining by an agent executing in a user space of the instance of the container image.

3 . The method of claim 1 , wherein determining the second amount further comprises determining by an agent executing in a kernel space of the instance of the container image.

4 . The method of claim 1 , wherein determining the second amount further comprises receiving, by the agent, user input from a user of the containerized process providing data for use in determining the second amount.

5 . The method of claim 1 , wherein determining the second amount further comprises receiving, by the agent, from the containerized process, data for use in determining the second amount.

6 . The method of claim 1 further comprising:

monitoring, by the agent in communication with the resource allocation process, utilization of the first virtual resource by the containerized process;

identifying, by the agent, a modification to a utilization rate by the containerized process of the first virtual resource;

communicating, by the agent, to the scheduler, the identified modification;

directing, by the scheduler, a pause in execution of a first subset of threads in a plurality of threads of the containerized process;

directing, by the scheduler, during continued execution of a second subset of threads in the plurality of threads of the containerized process, migration of the containerized process to a third machine; and

directing, by the scheduler, continued execution of the first subset and the second subset of threads in the plurality of threads of the containerized process upon completion of the migration of the containerized process to the third machine.

7 . A method for dynamically optimizing and modifying allocation of virtual resources to a process executing in a virtual machine, the method comprising:

allocating, by a first hypervisor executing on a first machine, a first amount of a first virtual resource to a process executing in a virtual machine, the first virtual resource associated with at least one physical resource of the first machine;

determining, by an agent in communication with a resource allocation process executing in the virtual machine, a second amount of the first virtual resource to be utilized by the process;

transmitting, by the agent to a scheduler, an identifier of the determined second amount;

determining, by the scheduler, that the determined second amount is different than the allocated first amount;

directing, by the scheduler, migration of the process to a second machine based upon the determined second amount;

allocating, by a second hypervisor executing on the second machine, a third amount of the first virtual resource, wherein the third amount is the same as the second amount;

directing, by the scheduler, a pause in execution of a first subset of threads in a plurality of threads of the containerized process;

directing, by the scheduler, during continued execution of a second subset of threads in the plurality of threads of the containerized process, migration of the containerized process to the second machine;

directing, by the scheduler, continued execution of the first subset and the second subset of threads in the plurality of threads of the containerized process upon completion of the migration of the containerized process to the second machine; and

communicating, by the resource allocation process, to the process, that the first amount of the first virtual resource is allocated to the process.

8 . The method of claim 7 , wherein determining the second amount further comprises determining by an agent executing in a user space of the virtual machine.

9 . The method of claim 7 , wherein determining the second amount further comprises determining by an agent executing in a kernel space of the virtual machine.

10 . The method of claim 7 , wherein determining the second amount further comprises receiving, by the agent, user input from a user of the process providing data for use in determining the second amount.

11 . The method of claim 7 , wherein determining the second amount further comprises receiving, by the agent, from the process, data for use in determining the second amount.

12 . The method of claim 7 further comprising:

monitoring, by the agent in communication with the resource allocation process, utilization of the first virtual resource by the process;

identifying, by the agent, a modification to a utilization rate by the process of the first virtual resource;

communicating, by the agent, to the scheduler, the identified modification;

directing, by the scheduler, a pause in execution of a first subset of threads in a plurality of threads of the process;

directing, by the scheduler, during continued execution of a second subset of threads in the plurality of threads of the process, migration of the process to a third machine; and

directing, by the scheduler continued execution of the first subset and the second subset of threads in the plurality of threads of the process upon completion of the migration of the process to the third machine.

13 . A system for dynamically optimizing and modifying allocation of virtual resources to containerized processes comprising:

first hypervisor executing on a first machine allocating a first amount of a first virtual resource to a container image executing on the first machine and including a process, the first virtual resource associated with at least one physical resource of the first machine;

an agent determining a second amount of the first virtual resource to be utilized by the process;

a scheduler receiving, from the agent, an identifier of the determined second amount, determining that the determined second amount is different than the allocated first amount, directing migration of the process, during execution of the process, to a second machine based upon the determined second amount, wherein directing further comprises:

directing a pause in execution of a first subset of threads in a plurality of threads of the containerized process,

directing during continued execution of a second subset of threads in the plurality of threads of the containerized process, migration of the containerized process to the second machine, and

directing continued execution of the first subset and the second subset of threads in the plurality of threads of the containerized process upon completion of the migration of the containerized process to the second machine;

a second hypervisor executing on the second machine allocating a third amount of the first virtual resource, wherein the third amount is the same as the determined second amount; and

a resource allocation process, executing in the second virtual machine and in communication with the agent, communicating, to the process on the second machine, that the first amount of the first virtual resource is allocated to the process.

14 . The system of claim 13 , wherein the agent further comprises an agent executing in the first machine.

15 . The system of claim 13 , wherein the scheduler executes on a third machine.

16 . The system of claim 13 , wherein the agent and the scheduler execute on a third machine.

17 . The system of claim 13 , wherein the resource allocation process is a kernel of the second machine.

18 . The system of claim 13 , wherein the resource allocation process is a driver executed by a kernel of the second machine.

Assignments (2)
MERGER Recorded Apr 20, 2026
From: EZRA ACQUISITION CORPORATION
To: EXOSTELLAR, INC.
Reel/Frame 074418/0878 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 12, 2025
From: SHEN, ZHIMING; WEATHERSPOON, HAKIM; VAN RENESSE, ROBBERT
To: EXOSTELLAR, INC.
Reel/Frame 070192/0520 →
Continuity (2)
Provisional Application 63551964 · Feb 9, 2024
Related Publication 20250258720A1 · Aug 14, 2025
References Cited (79)
US 6725221B2 · Murakami · 2004 [cited by examiner]
US 7512769B1 · Lowell · 2009 [cited by examiner]
US 10091072B2 · Cropper · 2018 [cited by applicant]
US 11567794B1 · Emelyanov · 2023 [cited by examiner]
US 11886926B1 · Gadalin · 2024 [cited by examiner]
US 12099884B2 · An · 2024 [cited by examiner]
US 20070180436A1 · Travostino · 2007 [cited by applicant]
US 20150220358A1 · Ponsford · 2015 [cited by applicant]
US 20160164762A1 · Reque · 2016 [cited by applicant]
US 20160217050A1 · Grimm · 2016 [cited by examiner]
US 20170098071A1 · Stopel · 2017 [cited by examiner]
US 20180053001A1 · Folco · 2018 [cited by examiner]
US 20180074748A1 · Makin · 2018 [cited by examiner]
US 20190050272A1 · Liu · 2019 [cited by examiner]
US 20190250946A1 · Parameshwaran · 2019 [cited by examiner]
US 20190278624A1 · Bade · 2019 [cited by examiner]
US 20190347127A1 · Coady · 2019 [cited by examiner]
US 20200034167A1 · Parthasarathy · 2020 [cited by examiner]
US 20200065021A1 · Mayatskikh · 2020 [cited by applicant]
US 20200097323A1 · Nider · 2020 [cited by examiner]
US 20200117743A1 · Shilimkar · 2020 [cited by examiner]
US 20200192689A1 · Smith, IV · 2020 [cited by examiner]
US 20200310853A1 · Featonby · 2020 [cited by examiner]
US 20200356397A1 · Kumatagi · 2020 [cited by examiner]
US 20210026707A1 · Rosenberg · 2021 [cited by examiner]
US 20210109775A1 · Shen · 2021 [cited by examiner]
US 20210318900A1 · Gopalan · 2021 [cited by examiner]
US 20220027778A1 · Kochura · 2022 [cited by examiner]
US 20220050705A1 · Shen · 2022 [cited by examiner]
US 20220084157A1 · Wang · 2022 [cited by examiner]
US 20230105439A1 · Shen · 2023 [cited by examiner]
US 20230236861A1 · Sahu · 2023 [cited by examiner]
US 20230393879A1 · Olmsted-Thompson · 2023 [cited by applicant]
US 20240143378A1 · Shen · 2024 [cited by applicant]
US 20240143448A1 · Kim · 2024 [cited by examiner]
US 20240272942A1 · Peng · 2024 [cited by examiner]
US 20240370291A1 · Liu · 2024 [cited by examiner]
US 20250021369A1 · Parekh · 2025 [cited by examiner]
US 20250307017A1 · Zhiming · 2025 [cited by applicant]
CN 115943365A · 2023 [cited by applicant]
IL 300200 · 2023 [cited by applicant]
WO 2022040082A1 · 2022 [cited by applicant]
Cloud Management Platform Market Size , Overview and scope, Market players, Market Research, Growth During to 2017-2024, Press Release MarketWatch News Department, May 7, 2019. (Accessed Feb. 17, 2020, at https://www.ma… [cited by applicant]
Gartner Forecasts Worldwide Public Cloud Revenue to Grow 17.3 Percent in 2019, Press Release, Stamford, Connecticut, USA, Sep. 12, 2018 (Accessed Feb. 17, 2020, at https://www.gartner.com/en/newsroom/press-releases/2018… [cited by applicant]
Christine Parizo “Managing multiple clouds requires careful choice, architecture planning,” TechRepublic, Nov. 2016. Accessed Feb. 17, 2020, at https://www.techrepublic.com/article/managing-multiple-clouds-requires-care… [cited by applicant]
Dan Williams et al., “The Xen-Blanket: Virtualize Once, Run Everywhere,” EuroSys '12: Proceedings of the 7th ACM European conference on Computer Systems, Bern, Switzerland, Apr. 2012, pp. 113-126. [cited by applicant]
Daniel Hein, “Cloud Users Are Wasting 35% of Their Cloud Spending,” Cloud Computing News 2019. (Accessed Feb. 17, 2020, at https://solutionsreview.com/cloud-platforms/cloud-users-are-wasting-35-of-their-cloud-spending/.… [cited by applicant]
International Search Report and Written Opinion mailed Dec. 9, 2021, in international patent application No. PCT/US2021/046133, 6 pages. [cited by applicant]
Jay Chapel, “4 Types of Idle Cloud Resources That Are Wasting Your Money,” Technology & Innovation: Cloud Computing, Jun. 26, 2018. (Accessed Feb. 17, 2020, at https://www.business2community.com/cloud-computing/4-types-… [cited by applicant]
Jay Chapel, “Cloud Waste to Hit Over $14 Billion in 2019,” DevOps, 2019. (Accessed Feb. 17, 2020, at https://devops.com/cloud-waste-to-hit-over-14-billion-in-2019/). [cited by applicant]
Larry Dignan, “Top cloud providers in 2020: AWS, Microsoft Azure, and Google Cloud, hybrid, SaaS players,” Part of a ZDNet Special Feature: Managing the Multicloud, 2020,48 pages. (Accessed Feb. 17, 2020, at https://www… [cited by applicant]
Laurence Goasduff, “Why Organizations Choose a Multicloud Strategy,” Gartner.com, May 2019. at https://www.gartner.com/smarterwithgartner/why-organizations-choose-a-multicloud-strategy/. [cited by applicant]
Mary Shacklett, “Enterprise leader's guide to building a successful multicloud strategy,” Part of a ZDNet Special Feature: Managing the Multicloud, Jul. 1, 2019. (Accessed Feb. 17, 2020, at https://www.zdnet.com/article… [cited by applicant]
Michele Mazzucco et al., “Achieving Performance and Availability Guarantees with Spot Instances,” 2011 IEEE International Conference on High Performance Computing and Communications, Banff, AB, Canada, Sep. 2-4, 2011, 8… [cited by applicant]
Navraj Chohan et al., “See Spot Run: Using Spot Instances for MapReduce Workflows,” HotCloud'10: Proceedings of the 2nd USENIX conference on Hot topics in cloud computing, Jun. 2010, 7 pages. [cited by applicant]
Notice of Allowance issued in App. No. IL300200, dated Oct. 24, 2023, 3 pages. [cited by applicant]
Office Action (Non-Final Rejection) dated Feb. 4, 2025 for U.S. Appl. No. 18/079,392 (pp. 1-12). [cited by applicant]
Office Action (Non-Final Rejection) dated Sep. 23, 2024 for U.S. Appl. No. 18/410,938 (pp. 1-9). [cited by applicant]
Office Action (Notice of Allowance and Fees Due (PTOL-85)) dated Oct. 12, 2023 for U.S. Appl. No. 17/403,326 (pp. 1-8). [cited by applicant]
Prateek Sharma et al., “SpotCheck: Designing a Derivative IaaS Cloud on the Spot Market,” EuroSys '15 (2015) 15 pages. [cited by applicant]
Qin Jia et al., “Smart Spot Instances for the Supercloud,” CrossCloud '16: Proceedings of the 3rd Workshop on CrossCloud Infrastructures & Platforms, London, United Kingdom, Apr. 2016, Article No. 5, pp. 1-6. [cited by applicant]
Rightscale 2019 State of the Cloud Report from Flexera: As Cloud use grows, organizations focus on Cloud costs and governance, Press Release by Flexera, 2019, 50 pages. Available online at <<https://resources.flexera.co… [cited by applicant]
Ron Miller, VMware acquires Cloud Health Technologies for multi-cloud management, TechCrunch, Aug. 27, 2018. (Accessed Feb. 26, 2020, at https://techcrunch.com/2018/08/27/vmware-acquires-cloudhealth-technologies-for-Mul… [cited by applicant]
Sangho Yi et al., “Reducing Costs of Spot Instances via Checkpointing in the Amazon Elastic Compute Cloud,” 2010 IEEE 3rd International Conference on Cloud Computing, Miami, FL, Jul. 5-10, 2010, pp. 236-243. [cited by applicant]
Supreeth Shastri et al., “Cloud Index Tracking: Enabling Predictable Costs in Cloud Spot Markets,” SoCC '18: Proceedings of the ACM Symposium on Cloud Computing, Carlsbad, CA, USA, Oct. 11-13, 2018, pp. 451-463. Availab… [cited by applicant]
Supreeth Shastri et al., “HotSpot: Automated Server Hopping in Cloud Spot Markets,” SoCC '17: Proceedings of the 2017 Symposium on Cloud Computing, Santa Clara, California, US, Sep. 2017, pp. 493-505. [cited by applicant]
Supreeth Subramanya et al., “SpotOn: A Batch Computing Service for the Spot Market,” SoCC '15: Proceedings of the Sixth ACM Symposium on Cloud Computing, Kohala Coast, Hawaii, USA, Aug. 2015 pp. 329-341. [cited by applicant]
Taifi, “Banking on Decoupling: Budget-driven Sustainability for HPC Applications on Auction-based Clouds,” ACM SIGOPS Operating Systems Review, vol. 47, No. 2, 2012, pp. 41-50. [cited by applicant]
Timothy Wood et al, “Black-box and Gray-box Strategies for Virtual Machine Migration,” NSDI '07,4th Usenix Symposium on Networked Systems Design & Implementation, Apr. 11-13, 2007, Cambridge, Massachusetts, USA, 14 )age… [cited by applicant]
Zhiming Shen et al., “Follow the Sun through the Clouds: Application Migration for Geographically Shifting Workloads,” 3oCC '16: Proceedings of the Seventh ACM Symposium on Cloud Computing, Oct. 2016, pp. 141-154. [cited by applicant]
Zhiming Shen et al., “X-Containers: Breaking Down Barriers to Improve Performance and Isolation of Cloud-Native Containers,” ASPLOS '19: Proceedings of the Twenty-Fourth International Conference on Architectural Support… [cited by applicant]
Office Action (Final Rejection) dated Apr. 14, 2025 for U.S. Appl. No. 18/410,938 (pp. 1-6). [cited by applicant]
International Search Report and Written Opinion issued in App. No. PCT/US2025/15209, dated May 23, 2025, 10 pages. [cited by applicant]
Extended European Search Report issued in App. No. EP21858893, dated Sep. 25, 2024, 13 pages. [cited by applicant]
Andreas Fischer et al: “Wide-Area Virtual Machine Migration as Resilience Mechanism”, Reliable Distributed Systems Workshops (SRDSW), 2011 30TH IEEE Symposium On, IEEE, Oct. 4, 2011 (Oct. 4, 2011), pp. 72-77, XP03202202… [cited by applicant]
Tay, Y. C. et al: “A Performance Comparison of Containers and Virtual Machines in Workload Migration Context”, 2017 IEEE 37th International Conference On Distributed Computing Systems Workshops (ICDCSW), IEEE, Jun. 5, 2… [cited by applicant]
Office Action (Notice of Allowance and Fees Due (PTOL-85)) dated Aug. 5, 2025 for U.S. Appl. No. 18/410,938 (pp. 1-5). [cited by applicant]
Office Action (Notice of Allowance and Fees Due (PTOL-85)) dated Aug. 26, 2025 for U.S. Appl. No. 18/410,938 (pp. 1-2). [cited by applicant]
Office Action (Notice of Allowance and Fees Due (PTOL-85)) dated Aug. 28, 2025 for U.S. Appl. No. 18/079,392 (pp. 1-9). [cited by applicant]