US 11,799,901 B2
Predictive rate limiting system for cloud computing services
Kaushal Bansal, Pleasanton, CA (US); Vaibhav Tendulkar, San Francisco, CA (US); Rakesh Ganapathi Karanth, San Mateo, CA (US); and Fangchen Richard Sun, Ithaca, NY (US)
Assigned to Salesforce, Inc., San Francisco, CA (US)
Filed by Salesforce, Inc., San Francisco, CA (US)
Filed on Jan. 23, 2020, as Appl. No. 16/750,892.
Prior Publication US 2021/0234890 A1, Jul. 29, 2021
Int. Cl. H04L 29/06 (2006.01); H04L 9/40 (2022.01); G06N 5/04 (2023.01); G06N 20/00 (2019.01); H04L 67/306 (2022.01); G06N 20/20 (2019.01)
CPC H04L 63/1458 (2013.01) [G06N 5/04 (2013.01); G06N 20/00 (2019.01)] 26 Claims
OG exemplary drawing
 
1. An apparatus, comprising:
a processing device; and
a memory device coupled to the processing device, the memory device having instructions stored thereon that, in response to execution by the processing device, cause the processing device to:
intercept, via a rate enforcer, a request from a client for one of a plurality of services to performed, the client belonging to an organization, the request corresponding to a processing resources rate for performing the request;
determine, by the rate enforcer, a current threshold of resource bandwidth for the organization by applying a real time data model and a historical data model, wherein the current threshold is a dynamic rate limit specific to the organization, the real time data model generating a first threshold at least in part by determining a number of real time requests received from the organization over a first preceding period of time; the historical data model generating a second threshold, the historical data model being generated by applying a machine learning model to historical data stored during processing of previous requests for the plurality of services from the organization over a second preceding period of time, the current threshold being the average of real time requests and historical requests, wherein the current threshold is used to validate the rate limit for the client;
perform the request if the processing resources rate for performing the request does not exceed the current threshold; and
deny the request if the processing resources rate for performing the request does exceed the current threshold.