IP Library Granted Patent US 12,445,530
Granted Patent B2
US 12,445,530 · App. 18/617,003 · Granted Oct 14, 2025

Microservice throttling based on learned demand predictions

Inventors: Abhinay Nagpal (Fremont, CA); Sujeet Mishra (Fremont, CA)
Assignee: Nutanix, Inc.
H04L67/51H04L41/16H04L43/08H04L47/20
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,445,530
App. No.
18/617,003
Filed
Mar 26, 2024
Granted
Oct 14, 2025
Kind
B2
Art Unit
2459
USPC
709/224
Abstract

A dynamically-managed microservices platform. The microservices platform is configured to selectively accept admission of microservices and to selectively throttle microservices based on a continually-trained machine learning model. The system is configured to implement multiple microservice lifecycle strategies, where individual ones of the multiple microservice lifecycle strategies use a prediction model having long-term and short term demand predictions. One or another of the multiple microservice lifecycle strategies are invoked at different times under different conditions. Under a first set of conditions, a prediction model is used to select a first strategy to admit or throttle a microservice based upon long-term or short-term demand predictions. Under a second set of conditions, the prediction model is used to select a different strategy to admit or throttle a microservice. The prediction model is continually trained such that new sets of observations and new sets of predicted outputs are codified into the machine learning model.

Claims (52)

1. A non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor cause a set of acts comprising:

monitoring a system having a plurality of microservices;

determining that at least one of the plurality of microservices are to be throttled;

generating short-term and long-term demand predictions for the plurality of microservices; and

analyzing at least the short-term and long-term demand predictions to identify a microservice of the plurality of microservices to throttle, wherein respective long-term demand predictions correspond to a first time range that is longer than a second time range of a corresponding short-term demand predictions.

2. The non-transitory computer readable medium of claim 1 , wherein admission of at least one microservice of the plurality of microservices was determined based on a long-term or short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

3. The non-transitory computer readable medium of claim 2 , wherein the admission of at least one microservice of the plurality of microservices was determined based on both the long-term and the short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

4. The non-transitory computer readable medium of claim 1 , wherein the set of acts further comprise throttling a non-critical microservice when either the short-term demand prediction of the non-critical microservice is high or when the long-term demand prediction of the non-critical microservice is high.

5. The non-transitory computer readable medium of claim 1 , wherein input signals to the short-term and long-term demand predictions are derived from observed behaviors comprising at least one of, CPU demands, network services demands, or storage facilities demands of the system, the system comprising multiple computing nodes.

6. The non-transitory computer readable medium of claim 1 , wherein the set of acts further comprise forming a candidate set of non-critical microservices by accessing the system to identify a set of microservices hosted on the system, and eliminating microservices that are associated with a critical label from the candidate set.

7. The non-transitory computer readable medium of claim 1 , wherein additional microservices of the plurality of microservices are throttled until the microservices are operating below a threshold.

8. A method comprising:

monitoring a system having a plurality of microservices;

determining that at least one of the plurality of microservices are to be throttled;

generating short-term and long-term demand predictions for the plurality of microservices; and

analyzing at least the short-term and long-term demand predictions to identify a microservice of the plurality of microservices to throttle, wherein respective long-term demand predictions correspond to a first time range that is longer than a second time range of a corresponding short-term demand predictions.

9. The method of claim 8 , wherein admission of at least one microservice of the plurality of microservices was determined based on a long-term or short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

10. The method of claim 9 , wherein the admission of at least one microservice of the plurality of microservices was determined based on both the long-term and the short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

11. The method of claim 8 , further comprising throttling a non-critical microservice when either the short-term demand prediction of the non-critical microservice is high or when the long-term demand prediction of the non-critical microservice is high.

12. The method of claim 8 , wherein input signals to the short-term and long-term demand predictions are derived from observed behaviors comprising at least one of, CPU demands, network services demands, or storage facilities demands of the system, the system comprising multiple computing nodes.

13. The method of claim 8 , further comprising forming a candidate set of non-critical microservices by accessing the system to identify a set of microservices hosted on the system, and eliminating microservices that are associated with a critical label from the candidate set.

14. The method of claim 8 , wherein additional microservices of the plurality of microservices are throttled until the microservices are operating below a threshold.

15. A system comprising:

a storage medium having stored thereon a sequence of instructions; and

a processor that executes the sequence of instructions to cause a set of acts comprising:

monitoring a computing cluster having a plurality of microservices;

determining that at least one of the plurality of microservices are to be throttled;

generating short-term and long-term demand predictions for the plurality of microservices; and

analyzing at least the short-term and long-term demand predictions to identify a microservice of the plurality of microservices to throttle, wherein respective long-term demand predictions correspond to a first time range that is longer than a second time range of a corresponding short-term demand predictions.

16. The system of claim 15 , wherein admission of at least one microservice of the plurality of microservices was determined based on a long-term or short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

17. The system of claim 16 , wherein the admission of at least one microservice of the plurality of microservices was determined based on both the long-term and the short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

18. The system of claim 15 , wherein the set of acts further comprise throttling a non-critical microservice when either the short-term demand prediction of the non-critical microservice is high or when the long-term demand prediction of the non-critical microservice is high.

19. The system of claim 15 , wherein input signals to the short-term and long-term demand predictions are derived from observed behaviors comprising at least one of, CPU demands, network services demands, or storage facilities demands of the computing cluster, the computing cluster comprising multiple computing nodes.

20. The system of claim 15 , wherein the set of acts further comprise forming a candidate set of non-critical microservices by accessing the computing cluster to identify a set of microservices hosted on the computing cluster, and eliminating microservices that are associated with a critical label from the candidate set.

21. The system of claim 15 , wherein additional microservices of the plurality of microservices are throttled until the microservices are operating below a threshold.

22. A non-transitory computer readable medium having stored thereon a sequence of instructions which, when executed by a processor cause a set of acts comprising:

monitoring a system having a plurality of microservices;

determining that at least one of the plurality of microservices are to be throttled;

generating short-term and long-term demand predictions for the plurality of microservices; and

analyzing at least the short-term and long-term demand predictions to identify a microservice of the plurality of microservices to throttle; and

throttling a non-critical microservice when either the short-term demand prediction of the non-critical microservice is high or when the long-term demand prediction of the non-critical microservice is high.

23. The non-transitory computer readable medium of claim 22 , wherein admission of at least one microservice of the plurality of microservices was determined based on both the long-term and short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

24. The non-transitory computer readable medium of claim 22 , wherein input signals to the short-term and the long-term demand predictions are derived from observed behaviors comprising at least one of, CPU demands, network services demands, or storage facilities demands of the system, the system comprising multiple computing nodes.

25. The non-transitory computer readable medium of claim 22 , wherein additional microservices of the plurality of microservices are throttled until the microservices are operating below a threshold.

26. A method comprising:

monitoring a system having a plurality of microservices;

determining that at least one of the plurality of microservices are to be throttled;

generating short-term and long-term demand predictions for the plurality of microservices; and

analyzing at least the short-term and long-term demand predictions to identify a microservice of the plurality of microservices to throttle, wherein admission of at least one microservice of the plurality of microservices was determined based on both a long-term and a short-term demand prediction from at least one prediction model used to select a first or a second admission strategy.

27. The method of claim 26 , further comprising throttling a non-critical microservice when either the short-term demand prediction of the non-critical microservice is high or when the long-term demand prediction of the non-critical microservice is high.

28. The method of claim 26 , wherein input signals to the short-term and long-term demand predictions are derived from observed behaviors comprising at least one of, CPU demands, network services demands, or storage facilities demands of the system, the system comprising multiple computing nodes.

29. The method of claim 26 , wherein additional microservices of the plurality of microservices are throttled until the microservices are operating below a threshold.

Assignments (1)
SECURITY INTEREST Recorded Feb 13, 2025
From: NUTANIX, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 070206/0463 →
Continuity (3)
Continuation 18103770 · Jan 31, 2023
Provisional Application 63478043 · Dec 30, 2022
Related Publication 20240388640A1 · Nov 21, 2024
References Cited (86)
US 8549518B1 · Aron et al. · 2013 [cited by applicant]
US 8601473B1 · Aron et al. · 2013 [cited by applicant]
US 8850130B1 · Aron et al. · 2014 [cited by applicant]
US 9772866B1 · Aron et al. · 2017 [cited by applicant]
US 11805076B2 · Vadayadiyil Raveendran et al. · 2023 [cited by applicant]
US 11943144B1 · Dwarakanathan et al. · 2024 [cited by applicant]
US 11973839B1 · Nagpal et al. · 2024 [cited by applicant]
US 20120233328A1 · Iyoob et al. · 2012 [cited by applicant]
US 20160112521A1 · Lawson · 2016 [cited by examiner]
US 20180254996A1 · Kairali et al. · 2018 [cited by applicant]
US 20200089537A1 · Bahirat et al. · 2020 [cited by applicant]
US 20200120000A1 · Parthasarathy et al. · 2020 [cited by applicant]
US 20200167145A1 · Franchitti · 2020 [cited by applicant]
US 20200195528A1 · Barton et al. · 2020 [cited by applicant]
US 20210028991A1 · Nataraj · 2021 [cited by examiner]
US 20210029182A1 · Mappus et al. · 2021 [cited by applicant]
US 20210081819A1 · Polleri et al. · 2021 [cited by applicant]
US 20210081837A1 · Polleri et al. · 2021 [cited by applicant]
US 20210081848A1 · Polleri et al. · 2021 [cited by applicant]
US 20210135983A1 · Farnham et al. · 2021 [cited by applicant]
US 20210241088A1 · Fong · 2021 [cited by applicant]
US 20210258230A1 · Tormasov et al. · 2021 [cited by applicant]
US 20220030087A1 · Chatterjee · 2022 [cited by applicant]
US 20220060431A1 · Vadayadiyil Raveendran et al. · 2022 [cited by applicant]
US 20220108147A1 · Wan et al. · 2022 [cited by applicant]
US 20220150666A1 · Kozhaya et al. · 2022 [cited by applicant]
US 20220301034A1 · Tezuka · 2022 [cited by examiner]
US 20230409412A1 · Kruegel · 2023 [cited by examiner]
US 20230409714A1 · Chen · 2023 [cited by examiner]
US 20230412629A1 · Beveridge · 2023 [cited by examiner]
US 20240012667A1 · Mohanty et al. · 2024 [cited by applicant]
US 20240086160A1 · Kanso et al. · 2024 [cited by applicant]
US 20240103903A1 · Ross et al. · 2024 [cited by applicant]
US 20240111600A1 · Kulkarni et al. · 2024 [cited by applicant]
US 20240131425A1 · Colenbrander · 2024 [cited by applicant]
CN 113064700 · 2021 [cited by applicant]
CN 114911627 · 2022 [cited by applicant]
CN 115391048 · 2022 [cited by applicant]
CN 116627660 · 2023 [cited by applicant]
CN 118036993 · 2024 [cited by applicant]
WO WO2022111156 · 2022 [cited by applicant]
Non-Final Office Action for U.S. Appl. No. 18/103,917 dated Dec. 12, 2024. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Oct. 15, 2013), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 11, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 20, 2014), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 7, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2015), from http://stevenpoitras.com/the-nutanix-bible/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 4, 2015), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 12, 2016), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 9, 2016), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2017), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 8, 2017), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 3, 2018), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jun. 25, 2018), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 8, 2019), from https://nutanixbible.com/. [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jul. 9, 2019), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Feb. 3, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Aug. 1, 2020), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Jan. 30, 2021), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Poitras, Steven. “The Nutanix Bible” (Sep. 9, 2022), from https://nutanixbible.com/ (Publication date based on indicated capture date by Archive.org; first publication date unknown). [cited by applicant]
Cano, I et al., “Curator: Self-Managing Storage for Enterprise Clusters”, [cited by applicant]
“Citrix XenDesktop 7.1 on Microsoft Hyper-V Server 2012 R2 on Nutanix Virtual Computing Platform—Solution Design,” Citrix Validated Solutions, Prepared by: Citrix APAC Solutions, dated Jun. 25, 2014. [cited by applicant]
Hagemann, P., “Evaluating dynamic load balancing of ECM workload pattern employed in cloud environments managed by a Kubernetes/Docker eco-system,” Institute of Parallel and Distributed Systems, University of Stuttgart,… [cited by applicant]
Complete Specification for Invention Titled “Multi-Entity Resource, Security, and Service Management in Edge Computing Deployments,” Applicant Intel Corporation, dated Dec. 18, 2020. [cited by applicant]
Zhong, Z., et al., “Machine Learning-based Orchestration of Containers: A Taxonomy and Future Directions,” The Cloud Computing and Distributed Systems Laboratory, School of Computing and Information Systems, The Univers… [cited by applicant]
Pereira da Silvaa, T., et al., “Online Machine Learning for Auto-Scaling Processing Services in the Edge Computing Environment,” Pervasive and Mobile Computing, vol. 87, Dec. 2022. [cited by applicant]
Yu, J., et al., “Workflow performance prediction based on graph structure aware deep attention neural network,” Journal of Industrial Information Integration 27, dated Feb. 9, 2022. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 18/103,770 dated Aug. 18, 2023 [NUT-PAT-1359]. [cited by applicant]
Non-Final Office Action dated Dec. 20, 2023 for U.S. Appl. No. 18/103,917 [Nut-PAT-1361]. [cited by applicant]
Notice of Allowance dated Dec. 26, 2023 for U.S. Appl. No. 18/103,770 [Nut-PAT-1359]. [cited by applicant]
Wang, Z., et al., “Autothrottle: A Practical Framework for Harvesting CPUs from SLO-Targeted Microservices,” Cornell University, dated Dec. 23, 2022. [cited by applicant]
Joseph, C., “Microservice Orchestration Strategies for Containerized Cloud Environments,” Department of Computer Science and Engineering National Institute of Technology Karnataka Surathkal, Mangalore, May 2021. [cited by applicant]
Hossen, R., et al., “Practical Efficient Microservice Autoscaling with QoS Assurance,” HPDC '22, Jun. 27-Jul. 1, 2022, Minneapolis, MN, USA. [cited by applicant]
“Throttling pattern,” Azure Architecture Center, Microsoft, URL: https://learn.microsoft.com/en-us/azure/architecture/patterns/throttling, date found via Google as Mar. 3, 2017. [cited by applicant]
Zhang, Y., et al., “Sinan: ML-Based and QoS-Aware Resource Management for Cloud Microservices,” Cornell University, ASPLOS '21, Apr. 19-23, 2021, Virtual, USA. [cited by applicant]
Wang, Z., et al., “Autothrottle: A Practical Bi-Level Approach to Resource Management for SLO-Targeted Microservices,” Proceedings of the 21st USENIX Symposium on Networked Systems Design and Implementation. Apr. 16-18,… [cited by applicant]
“Your Guide to Scaling Microservices,” Couchbase Product Marketing, dated Sep. 24, 2023. [cited by applicant]
Santos, W., et al., “Microservices performance forecast usingdynamic Multiple Predictor Systems, ” Engineering Applications of Artificial Intelligence, vol. 129, Mar. 2024. [cited by applicant]
“Method and device for virtually scheduling cloud computing,” Computer Science, dated Nov. 18, 2011. [cited by applicant]
“Aliware Releases New Developer Services to MakeDevelopment Easier,” Alibaba Cloud, dated Jan. 28, 2019. [cited by applicant]
Final Office Action for U.S. Appl. No. 18/103,917 dated Jul. 30, 2024 [NUT-PAT-1361]. [cited by applicant]
Fabir, C., “Microservices—Throttling—Part 1,” Medium, dated Jan. 31, 2021. [cited by applicant]
Grand, M., “Adaptive Throttling: Maximize Through put of Microservices without Overwhelming Downstream Resources,” dated Aug. 11, 2020. [cited by applicant]
Cuervo, A., “Handling Overload,” Chapter 21 of SRE Book, copyright 2017. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 18/103,917 dated Mar. 31, 2025 [NUT-PAT-1361]. [cited by applicant]
Notice of Allowance for U.S. Appl. No. 18/103,917 dated Jul. 16, 2025. [cited by applicant]