IP Library › Granted Patent US 12,744,734
Granted Patent B2
US 12,744,734 · App. 18/398,915 · Granted Sep 22, 2026

Adaptive rate throttling for cloud-based service requests

Inventors: Oleg Kobozev (Jamison, PA); Manas Bhikchand Mutha (Tinton Falls, NJ); Ishaan Arora (New Delhi, IN)
Assignee: Commvault Systems, Inc.
H04L47/12H04L47/2475H04L67/1097
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,744,734
App. No.
18/398,915
Filed
Dec 28, 2023
Granted
Sep 22, 2026
Kind
B2
Art Unit
2447
USPC
709/238
Abstract

Some service providers (e.g., Microsoft's Office 365 services) throttle application or service requests an organization, a user, or device can request from a specific application or a suite of applications/services. This throttling can significantly impact performance for, not only the requesting user/device, but also for other tenants associated with that organization. To limit this imposed external throttling, an intelligent internal adaptive throttling or rate limiting may be implemented. In an embodiment, the system monitors throttling imposed by the service provider. Using this information, the system determines an optimal rate of calls that can made for that service to maximize throughput and performance. The system continuously monitors the throttling and in response dynamically modifies the internal target rate.

Claims (41)

1 . A method for managing service request throttling from a third-party service, comprising:

obtaining an internal throttling rate target,

wherein the internal throttling rate target represent a maximum number of service calls allowed per time interval to a third-party service provider,

wherein the internal throttling rate target is derived from at least one of an information management policy, a definition within source code, or dynamically calculated;

continuously determining a number of service requests to allow in accordance with the internal throttling rate target, wherein the determination is based, at least, on a total number of service requests already made;

periodically:

accessing performance data associated with service requests initiated to the third-party service provider;

determining a current external throttling percent for a preceding period based on a number of service requests throttled by the third-party service provider during the preceding period and an amount of time one or more of the respective service requests were instructed to wait for;

determining that the current external throttling percent falls outside a threshold range of a throttling percent target; and

in response to determining that the current external throttling percent falls outside a threshold range of the throttling percent target:

calculating a rate correction factor using the throttling percent target and the current external throttling percent, and

adjusting the internal throttling rate target by multiplying the rate correction factor by the ibternal throttling rate target.

2 . The method of claim 1 , wherein the internal throttling rate target is dynamically adjusted based on machine learning analysis of historical performance data and Recovery Point Objective (RPO) and Recovery Time Objective (RTO) requirements.

3 . The method of claim 1 , wherein determining whether the current external throttling percent is within a threshold range comprises comparing the current external throttling percent with a percent threshold range.

4 . The method of claim 1 , wherein the service requests comprise one or more of backup, migration, or data recovery operations performed on cloud-based application data.

5 . The method of claim 1 , further comprising obtaining performance data from a remote database or a storage medium accessible by a service request manager.

6 . The method of claim 1 , wherein the internal throttling rate target is adjusted at intervals that are dynamically shortened based on deviation between external throttling percent and the internal throttling rate target.

7 . The method of claim 1 , wherein the service requests are associated with a multi-tenant cloud application environment.

8 . The method of claim 1 , further comprising storing calculated throttling correction factors as part of performance data for use in subsequent adaptive throttling operations.

9 . The method of claim 1 , further comprising resetting the throttling percent target when external throttling percent continuously falls outside a predefined threshold range.

10 . A system for managing service request throttling from a third-party service, the system configured to:

using one or more computer processors:

obtain an internal throttling rate target,

wherein the internal throttling rate target represent a maximum number of service calls allowed per time interval to a third-party service provider,

wherein the internal throttling rate target is derived from at least one of an information management policy, a definition within source code, or dynamically calculated;

continuously determine a number of service requests to allow in accordance with the internal throttling rate target, wherein the determination is based, at least, on a total number of service requests already made;

periodically:

access performance data associated with service requests initiated to the third-party service provider;

determine a current external throttling percent for a preceding period based on a number of service requests throttled by the third-party service provider during the preceding period and an amount of time one or more of the respective service requests were instructed to wait for;

determine that the current external throttling percent falls outside a threshold range of a throttling percent target; and

in response to the determination that the current external throttling percent falls outside a threshold range of a throttling percent target:

calculate a rate correction factor using the throttling percent target and the current external throttling percent, and

adjust the internal throttling rate target by multiplying the rate correction factor by the internal throttling rate target.

11 . The system of claim 10 , wherein the internal throttling rate target is dynamically adjusted based on machine learning analysis of historical performance data and Recovery Point Objective (RPO) and Recovery Time Objective (RTO) requirements.

12 . The system of claim 10 , wherein determining whether the current external throttling percent is within a threshold range comprises comparing the current external throttling percent with a percent threshold range.

13 . The system of claim 10 , wherein the service requests comprise one or more of backup, migration, or data recovery operations performed on cloud-based application data.

14 . The system of claim 10 , further comprising obtaining performance data from a remote database or a storage medium accessible by a service request manager.

15 . The system of claim 10 , wherein the internal throttling rate target is adjusted at intervals that are dynamically shortened based on deviation between external throttling percent and the internal throttling rate target.

16 . The system of claim 10 , wherein the service requests are associated with a multi-tenant cloud application environment.

17 . The system of claim 10 , further comprising storing calculated throttling correction factors as part of performance data for use in subsequent adaptive throttling operations.

18 . The system of claim 10 , further comprising resetting the throttling percent target when external throttling percent continuously falls outside a predefined threshold range.

Assignments (2)
SUPPLEMENTAL CONFIRMATORY GRANT OF SECURITY INTEREST IN UNITED STATES PATENTS Recorded Apr 16, 2025
From: COMMVAULT SYSTEMS, INC.
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 070864/0344 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 5, 2024
From: KOBOZEV, OLEG; MUTHA, MANAS BHIKCHAND; ARORA, ISHAAN
To: COMMVAULT SYSTEMS, INC.
Reel/Frame 066027/0728 →
Continuity (2)
Provisional Application 63435925 · Dec 29, 2022
Related Publication 20250016098A1 · Jan 9, 2025
References Cited (60)
US 7035880B1 · Crescenti et al. · 2006 [cited by applicant]
US 7107298B2 · Prahlad et al. · 2006 [cited by applicant]
US 7246207B2 · Kottomtharayil et al. · 2007 [cited by applicant]
US 7315923B2 · Retnamma et al. · 2008 [cited by applicant]
US 7343453B2 · Prahlad et al. · 2008 [cited by applicant]
US 7395282B1 · Crescenti et al. · 2008 [cited by applicant]
US 7529782B2 · Prahlad et al. · 2009 [cited by applicant]
US 7551623B1 · Feroz · 2009 [cited by applicant]
US 7617262B2 · Prahlad et al. · 2009 [cited by applicant]
US 7734669B2 · Kottomtharayil et al. · 2010 [cited by applicant]
US 7747579B2 · Prahlad et al. · 2010 [cited by applicant]
US 8156086B2 · Lu et al. · 2012 [cited by applicant]
US 8170995B2 · Prahlad et al. · 2012 [cited by applicant]
US 8230195B2 · Amarendran et al. · 2012 [cited by applicant]
US 8260917B1 · Manikowski · 2012 [cited by examiner]
US 8285681B2 · Prahlad et al. · 2012 [cited by applicant]
US 8307177B2 · Prahlad et al. · 2012 [cited by applicant]
US 8364652B2 · Vijayan et al. · 2013 [cited by applicant]
US 8392558B1 · Ahuja · 2013 [cited by examiner]
US 8578120B2 · Attarde et al. · 2013 [cited by applicant]
US 8953453B1 · Xiao · 2015 [cited by examiner]
US 8954446B2 · Vijayan Retnamma et al. · 2015 [cited by applicant]
US 9020900B2 · Vijayan Retnamma et al. · 2015 [cited by applicant]
US 9098495B2 · Gokhale · 2015 [cited by applicant]
US 9106887B1 · Owen · 2015 [cited by applicant]
US 9239687B2 · Vijayan et al. · 2016 [cited by applicant]
US 9444811B2 · Nara et al. · 2016 [cited by applicant]
US 9450879B2 · Rector · 2016 [cited by applicant]
US 9509612B1 · Armorer · 2016 [cited by applicant]
US 9633033B2 · Vijayan et al. · 2017 [cited by applicant]
US 9798584B1 · Kulkarni · 2017 [cited by examiner]
US 10228962B2 · Dornemann et al. · 2019 [cited by applicant]
US 10255143B2 · Vijayan et al. · 2019 [cited by applicant]
US 10291730B1 · Shavell · 2019 [cited by examiner]
US 10592145B2 · Bedadala et al. · 2020 [cited by applicant]
US 10659371B1 · Jain · 2020 [cited by examiner]
US 10684924B2 · Kilaru et al. · 2020 [cited by applicant]
US 10938723B2 · Thanasekaran · 2021 [cited by applicant]
US 11303570B2 · Thanasekaran · 2022 [cited by applicant]
US 11323373B2 · Thanasekaran · 2022 [cited by applicant]
US 20060224846A1 · Amarendran et al. · 2006 [cited by applicant]
US 20100094999A1 · Rama · 2010 [cited by applicant]
US 20110280390A1 · Lawson · 2011 [cited by examiner]
US 20120020472A1 · Cutajar · 2012 [cited by examiner]
US 20130129068A1 · Lawson · 2013 [cited by examiner]
US 20130297819A1 · Mittal et al. · 2013 [cited by applicant]
US 20140059551A1 · Umanesan · 2014 [cited by examiner]
US 20150186228A1 · Kumar · 2015 [cited by examiner]
US 20160048408A1 · Madhu · 2016 [cited by examiner]
US 20160350391A1 · Vijayan et al. · 2016 [cited by applicant]
US 20170235647A1 · Kilaru et al. · 2017 [cited by applicant]
US 20190102280A1 · Caldato · 2019 [cited by examiner]
US 20190108341A1 · Bedhapudi et al. · 2019 [cited by applicant]
US 20190266534A1 · Kessaci · 2019 [cited by examiner]
US 20190306189A1 · Torgerson · 2019 [cited by examiner]
US 20190325757A1 · Goel · 2019 [cited by examiner]
US 20200287963A1 · Cheng · 2020 [cited by examiner]
US 20200403921A1 · Thanasekaran · 2020 [cited by applicant]
US 20210349759A1 · Bansal · 2021 [cited by examiner]
US 20240394277A1 · Jain · 2024 [cited by examiner]