IP Library › Granted Patent US 12,278,767
Granted Patent B2
US 12,278,767 · App. 17/454,884 · Granted Apr 15, 2025

Dynamic traffic throttling

Inventors: Ravindra G. Gore (Fremont, CA); Benjamin Fry (Berkeley, CA); Chaitanya Bhatt (Fremont, CA)
Assignee: Salesforce, Inc.
H04L47/122H04L41/0816H04L41/0896H04L43/062H04L43/0876H04L43/0882H04L43/0888H04L43/16H04L47/25H04L47/30H04L41/22
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,278,767
App. No.
17/454,884
Granted
Apr 15, 2025
Kind
B2
Abstract

Disclosed are examples of systems, apparatuses, methods, and computer program products for dynamic traffic throttling. A server system can receive, via an edge worker associated with a content delivery network (CDN), a first set of requests to access a first site. The server system can determine that traffic to the first site is to be throttled. The server system can determine a throttling rate. The server system can transmit instructions to the edge worker, the instructions configured to cause the edge worker to direct at least a portion of a second set of requests to access the first site to a waiting room site prior to being directed to the first site, the direction of the at least the portion of the second set of requests to the waiting room site being subject to the throttling rate.

Claims (51)

1. A system comprising:

a server system comprising one or more processors in communication with one or more memory devices storing computer readable instructions that when executed by the one or more processors are configured to cause:

enabling a preconfigured waiting room site specific to a first site;

receiving, via an edge worker associated with a content delivery network (CDN), a first set of requests to access a first site;

determining that traffic to the first site is to be throttled;

responsive to determining that traffic to the first site is to be throttled, determining a throttling rate based at least in part on: a number of requests in the first set of requests and/or a degradation rate associated with a degradation in service capacity;

transmitting instructions to the edge worker, the instructions configured to cause the edge worker to direct at least a portion of a second set of requests to access the first site to the waiting room site prior to being directed to the first site, the direction of the at least the portion of the second set of requests to the waiting room site being subject to the throttling rate; and wherein the instructions to the edge worker comprise an indication of the throttling rate;

determining an update in performance due to throttling subject to the first throttling rate; and

determining whether to disable the preconfigured waiting room site based at least part on the update in performance.

2. The system of claim 1 , wherein the throttling rate is determined based on a number of requests for the first site at which the degradation in service capacity occurred.

3. The system of claim 2 , wherein the degradation in service capacity is identified based on a spike in CPU usage of the server system, a spike in CPU usage of an application server associated with the server system, and/or network usage information.

4. The system of claim 1 , and wherein the waiting room site was preconfigured prior to determining that the traffic to the first site is to be throttled.

5. The system of claim 1 , wherein the server system is further configurable to cause:

determining a response to throttling of traffic to the first site; and

transmitting updated instructions to the edge worker, wherein the updated instructions cause the waiting room site to be disabled and to cause a third set of requests to access the first site to be directed to the first site.

6. The system of claim 1 , wherein the server system is further configurable to cause:

determining a response to throttling of traffic to the first site;

determining an updated throttling rate based on the response to the throttling of traffic to the first site; and

transmitting updated instructions to the edge worker, wherein the updated instructions cause a third set of requests to access the first site to be throttled subject to the updated throttling rate.

7. The system of claim 1 , wherein the throttling rate is determined further based on traffic to a second site associated with the server system.

8. A non-transitory computer readable medium storing instructions that when executed by one or more processors is configurable to perform:

receiving, via an edge worker associated with a content delivery network (CDN), a first set of requests to access a first site;

determining that traffic to the first site is to be throttled;

responsive to determining that traffic to the first site is to be throttled, determining a throttling rate based at least in part on: a number of requests in the first set of requests and/or a degradation rate associated with a degradation in service capacity, wherein the degradation in service capacity is determined based on a spike in CPU usage of a server system associated with the first site or a spike in CPU usage of an application server associated with the server system; and

transmitting instructions to the edge worker, the instructions to the edge worker configured to cause the edge worker to direct at least a portion of a second set of requests to access the first site to a waiting room site prior to being directed to the first site, the direction of the at least the portion of the second set of requests to the waiting room site being subject to the throttling rate.

9. The non-transitory computer readable medium of claim 8 , wherein the throttling rate is determined based on a number of requests for the first site at which the degradation in service capacity occurred.

10. The non-transitory computer readable medium of claim 9 , wherein the degradation in service capacity is identified based on network usage information.

11. The non-transitory computer readable medium of claim 8 , wherein the waiting room site is specific to the first site, and wherein the waiting room site was preconfigured prior to determining that the traffic to the first site is to be throttled.

12. The non-transitory computer readable medium of claim 8 , wherein the instructions are configured to further cause:

determining a response to throttling of traffic to the first site; and

transmitting updated instructions to the edge worker, wherein the updated instructions cause the waiting room site to be disabled and to cause a third set of requests to access the first site to be directed to the first site.

13. The non-transitory computer readable medium of claim 8 , wherein the instructions are configured to further cause:

determining a response to throttling of traffic to the first site;

determining an updated throttling rate based on the response to the throttling of traffic to the first site; and

transmitting updated instructions to the edge worker, wherein the updated instructions cause a third set of requests to access the first site to be throttled subject to the updated throttling rate.

14. The non-transitory computer readable medium of claim 8 , wherein the throttling rate is determined further based on traffic to a second site associated with a datacenter that hosts the first site.

15. A method comprising:

receiving, via an edge worker associated with a content delivery network (CDN), a first set of requests to access a first site;

determining that traffic to the first site is to be throttled;

responsive to determining that traffic to the first site is to be throttled, determining a throttling rate based at least in part on: a number of requests in the first set of requests and/or a degradation rate associated with a degradation in service capacity, wherein the degradation in service capacity is determined based on a spike in CPU usage of a server system associated with the first site or a spike in CPU usage of an application server associated with the server system; and

transmitting instructions to the edge worker, the instructions configured to cause the edge worker to direct at least a portion of a second set of requests to access the first site to a waiting room site prior to being directed to the first site, the direction of the at least the portion of the second set of requests to the waiting room site being subject to the throttling rate.

16. The method of claim 15 , wherein the throttling rate is determined based on a number of requests for the first site at which the degradation in service capacity occurred.

17. The method of claim 16 , wherein the degradation in service capacity is identified based on network usage information.

18. The method of claim 15 , further comprising:

determining a response to throttling of traffic to the first site; and

transmitting updated instructions to the edge worker, wherein the updated instructions cause the waiting room site to be disabled and to cause a third set of requests to access the first site to be directed to the first site.

19. The method of claim 15 , further comprising:

determining a response to throttling of traffic to the first site;

determining an updated throttling rate based on the response to the throttling of traffic to the first site; and

transmitting updated instructions to the edge worker, wherein the updated instructions cause a third set of requests to access the first site to be throttled subject to the updated throttling rate.

20. The method of claim 15 , wherein the throttling rate is determined further based on traffic to a second site.

Assignments (2)
CHANGE OF NAME Recorded Aug 4, 2026
From: SALESFORCE.COM, INC.
To: SALESFORCE, INC.
Reel/Frame 076118/0548 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 3, 2021
From: GORE, RAVINDRA G.; FRY, BENJAMIN; BHATT, CHAITANYA
To: SALESFORCE.COM, INC
Reel/Frame 058283/0785 →
Continuity (1)
Related Publication 20230155940A1 · May 18, 2023
References Cited (229)
US 5577188A · Zhu · 1996 [cited by applicant]
US 5608872A · Schwartz et al. · 1997 [cited by applicant]
US 5649104A · Carleton et al. · 1997 [cited by applicant]
US 5715450A · Ambrose et al. · 1998 [cited by applicant]
US 5761419A · Schwartz et al. · 1998 [cited by applicant]
US 5819038A · Carleton et al. · 1998 [cited by applicant]
US 5821937A · Tonelli et al. · 1998 [cited by applicant]
US 5831610A · Tonelli et al. · 1998 [cited by applicant]
US 5873096A · Lim et al. · 1999 [cited by applicant]
US 5918159A · Fomukong et al. · 1999 [cited by applicant]
US 5963953A · Cram et al. · 1999 [cited by applicant]
US 5983227A · Nazem et al. · 1999 [cited by applicant]
US 6092083A · Brodersen et al. · 2000 [cited by applicant]
US 6161149A · Achacoso et al. · 2000 [cited by applicant]
US 6169534B1 · Raffel et al. · 2001 [cited by applicant]
US 6178425B1 · Brodersen et al. · 2001 [cited by applicant]
US 6189011B1 · Lim et al. · 2001 [cited by applicant]
US 6216133B1 · Masthoff · 2001 [cited by applicant]
US 6216135B1 · Brodersen et al. · 2001 [cited by applicant]
US 6233617B1 · Rothwein et al. · 2001 [cited by applicant]
US 6236978B1 · Tuzhilin · 2001 [cited by applicant]
US 6266669B1 · Brodersen et al. · 2001 [cited by applicant]
US 6288717B1 · Dunkle · 2001 [cited by applicant]
US 6295530B1 · Ritchie et al. · 2001 [cited by applicant]
US 6324568B1 · Diec et al. · 2001 [cited by applicant]
US 6324693B1 · Brodersen et al. · 2001 [cited by applicant]
US 6336137B1 · Lee et al. · 2002 [cited by applicant]
US D454139S · Feldcamp et al. · 2002 [cited by applicant]
US 6367077B1 · Brodersen et al. · 2002 [cited by applicant]
US 6393605B1 · Loomans · 2002 [cited by applicant]
US 6405220B1 · Brodersen et al. · 2002 [cited by applicant]
US 6411949B1 · Schaffer · 2002 [cited by applicant]
US 6434550B1 · Warner et al. · 2002 [cited by applicant]
US 6446089B1 · Brodersen et al. · 2002 [cited by applicant]
US 6535909B1 · Rust · 2003 [cited by applicant]
US 6549908B1 · Loomans · 2003 [cited by applicant]
US 6553563B2 · Ambrose et al. · 2003 [cited by applicant]
US 6560461B1 · Fomukong et al. · 2003 [cited by applicant]
US 6574635B2 · Stauber et al. · 2003 [cited by applicant]
US 6577726B1 · Huang et al. · 2003 [cited by applicant]
US 6601087B1 · Zhu et al. · 2003 [cited by applicant]
US 6604117B2 · Lim et al. · 2003 [cited by applicant]
US 6604128B2 · Diec et al. · 2003 [cited by applicant]
US 6609150B2 · Lee et al. · 2003 [cited by applicant]
US 6621834B1 · Scherpbier et al. · 2003 [cited by applicant]
US 6654032B1 · Zhu et al. · 2003 [cited by applicant]
US 6665648B2 · Brodersen et al. · 2003 [cited by applicant]
US 6665655B1 · Warner et al. · 2003 [cited by applicant]
US 6684438B2 · Brodersen et al. · 2004 [cited by applicant]
US 6711565B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6724399B1 · Katchour et al. · 2004 [cited by applicant]
US 6728702B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6728960B1 · Loomans et al. · 2004 [cited by applicant]
US 6732095B1 · Warshavsky et al. · 2004 [cited by applicant]
US 6732100B1 · Brodersen et al. · 2004 [cited by applicant]
US 6732111B2 · Brodersen et al. · 2004 [cited by applicant]
US 6754681B2 · Brodersen et al. · 2004 [cited by applicant]
US 6763351B1 · Subramaniam et al. · 2004 [cited by applicant]
US 6763501B1 · Zhu et al. · 2004 [cited by applicant]
US 6768904B2 · Kim · 2004 [cited by applicant]
US 6772229B1 · Achacoso et al. · 2004 [cited by applicant]
US 6782383B2 · Subramaniam et al. · 2004 [cited by applicant]
US 6804330B1 · Jones et al. · 2004 [cited by applicant]
US 6826565B2 · Ritchie et al. · 2004 [cited by applicant]
US 6826582B1 · Chatterjee et al. · 2004 [cited by applicant]
US 6826745B2 · Coker · 2004 [cited by applicant]
US 6829655B1 · Huang et al. · 2004 [cited by applicant]
US 6842748B1 · Warner et al. · 2005 [cited by applicant]
US 6850895B2 · Brodersen et al. · 2005 [cited by applicant]
US 6850949B2 · Warner et al. · 2005 [cited by applicant]
US 6907566B1 · McElfresh et al. · 2005 [cited by applicant]
US 7062502B1 · Kesler · 2006 [cited by applicant]
US 7069231B1 · Cinarkaya et al. · 2006 [cited by applicant]
US 7069497B1 · Desai · 2006 [cited by applicant]
US 7100111B2 · McElfresh et al. · 2006 [cited by applicant]
US 7181758B1 · Chan · 2007 [cited by applicant]
US 7200681B1 · Lewin · 2007 [cited by examiner]
US 7240100B1 · Wein · 2007 [cited by examiner]
US 7269590B2 · Hull et al. · 2007 [cited by applicant]
US 7289976B2 · Kihneman et al. · 2007 [cited by applicant]
US 7340411B2 · Cook · 2008 [cited by applicant]
US 7356482B2 · Frankland et al. · 2008 [cited by applicant]
US 7373599B2 · McElfresh et al. · 2008 [cited by applicant]
US 7401094B1 · Kesler · 2008 [cited by applicant]
US 7406501B2 · Szeto et al. · 2008 [cited by applicant]
US 7412455B2 · Dillon · 2008 [cited by applicant]
US 7454509B2 · Boulter et al. · 2008 [cited by applicant]
US 7508789B2 · Chan · 2009 [cited by applicant]
US 7599935B2 · La Rotonda et al. · 2009 [cited by applicant]
US 7603331B2 · Tuzhilin et al. · 2009 [cited by applicant]
US 7603483B2 · Psounis et al. · 2009 [cited by applicant]
US 7620655B2 · Larsson et al. · 2009 [cited by applicant]
US 7644122B2 · Weyer et al. · 2010 [cited by applicant]
US 7668861B2 · Steven · 2010 [cited by applicant]
US 7698160B2 · Beaven et al. · 2010 [cited by applicant]
US 7730478B2 · Weissman · 2010 [cited by applicant]
US 7734815B2 · Leighton · 2010 [cited by examiner]
US 7747648B1 · Kraft et al. · 2010 [cited by applicant]
US 7752258B2 · Lewin · 2010 [cited by examiner]
US 7779039B2 · Weissman et al. · 2010 [cited by applicant]
US 7779475B2 · Jakobson et al. · 2010 [cited by applicant]
US 7827208B2 · Bosworth et al. · 2010 [cited by applicant]
US 7853881B1 · Aly Assal et al. · 2010 [cited by applicant]
US 7945653B2 · Zukerberg et al. · 2011 [cited by applicant]
US 8005896B2 · Cheah · 2011 [cited by applicant]
US 8014943B2 · Jakobson · 2011 [cited by applicant]
US 8015495B2 · Achacoso et al. · 2011 [cited by applicant]
US 8032297B2 · Jakobson · 2011 [cited by applicant]
US 8073850B1 · Hubbard et al. · 2011 [cited by applicant]
US 8082301B2 · Ahlgren et al. · 2011 [cited by applicant]
US 8095413B1 · Beaven · 2012 [cited by applicant]
US 8095531B2 · Weissman et al. · 2012 [cited by applicant]
US 8095594B2 · Beaven et al. · 2012 [cited by applicant]
US 8103611B2 · Tuzhilin et al. · 2012 [cited by applicant]
US 8150913B2 · Cheah · 2012 [cited by applicant]
US 8166079B2 · Lewin · 2012 [cited by examiner]
US 8209308B2 · Rueben et al. · 2012 [cited by applicant]
US 8209333B2 · Hubbard et al. · 2012 [cited by applicant]
US 8275836B2 · Beaven et al. · 2012 [cited by applicant]
US 8423662B1 · Weihl · 2013 [cited by examiner]
US 8457545B2 · Chan · 2013 [cited by applicant]
US 8484111B2 · Frankland et al. · 2013 [cited by applicant]
US 8490025B2 · Jakobson et al. · 2013 [cited by applicant]
US 8504945B2 · Jakobson et al. · 2013 [cited by applicant]
US 8510045B2 · Rueben et al. · 2013 [cited by applicant]
US 8510664B2 · Rueben et al. · 2013 [cited by applicant]
US 8566301B2 · Rueben et al. · 2013 [cited by applicant]
US 8646103B2 · Jakobson et al. · 2014 [cited by applicant]
US 9667747B2 · Stevens · 2017 [cited by examiner]
US 9942363B2 · Stevens · 2018 [cited by examiner]
US 11128732B1 · Czerpak · 2021 [cited by examiner]
US 20010044791A1 · Richter et al. · 2001 [cited by applicant]
US 20020072951A1 · Lee et al. · 2002 [cited by applicant]
US 20020082892A1 · Raffel et al. · 2002 [cited by applicant]
US 20020129352A1 · Brodersen et al. · 2002 [cited by applicant]
US 20020140731A1 · Subramaniam et al. · 2002 [cited by applicant]
US 20020143997A1 · Huang et al. · 2002 [cited by applicant]
US 20020162090A1 · Parnell et al. · 2002 [cited by applicant]
US 20020165742A1 · Robbins · 2002 [cited by applicant]
US 20030004971A1 · Gong · 2003 [cited by applicant]
US 20030018705A1 · Chen et al. · 2003 [cited by applicant]
US 20030018830A1 · Chen et al. · 2003 [cited by applicant]
US 20030066031A1 · Laane et al. · 2003 [cited by applicant]
US 20030066032A1 · Ramachandran et al. · 2003 [cited by applicant]
US 20030069936A1 · Warner et al. · 2003 [cited by applicant]
US 20030070000A1 · Coker et al. · 2003 [cited by applicant]
US 20030070004A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030070005A1 · Mukundan et al. · 2003 [cited by applicant]
US 20030074418A1 · Coker et al. · 2003 [cited by applicant]
US 20030120675A1 · Stauber et al. · 2003 [cited by applicant]
US 20030151633A1 · George et al. · 2003 [cited by applicant]
US 20030159136A1 · Huang et al. · 2003 [cited by applicant]
US 20030187921A1 · Diec et al. · 2003 [cited by applicant]
US 20030189600A1 · Gune et al. · 2003 [cited by applicant]
US 20030204427A1 · Gune et al. · 2003 [cited by applicant]
US 20030206192A1 · Chen et al. · 2003 [cited by applicant]
US 20030225730A1 · Warner et al. · 2003 [cited by applicant]
US 20040001092A1 · Rothwein et al. · 2004 [cited by applicant]
US 20040010489A1 · Rio et al. · 2004 [cited by applicant]
US 20040015981A1 · Coker et al. · 2004 [cited by applicant]
US 20040027388A1 · Berg et al. · 2004 [cited by applicant]
US 20040128001A1 · Levin et al. · 2004 [cited by applicant]
US 20040186860A1 · Lee et al. · 2004 [cited by applicant]
US 20040193510A1 · Catahan et al. · 2004 [cited by applicant]
US 20040199489A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199536A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040199543A1 · Braud et al. · 2004 [cited by applicant]
US 20040249854A1 · Barnes-Leon et al. · 2004 [cited by applicant]
US 20040260534A1 · Pak et al. · 2004 [cited by applicant]
US 20040260659A1 · Chan et al. · 2004 [cited by applicant]
US 20040268299A1 · Lei et al. · 2004 [cited by applicant]
US 20050050555A1 · Exley et al. · 2005 [cited by applicant]
US 20050091098A1 · Brodersen et al. · 2005 [cited by applicant]
US 20070118653A1 · Bindal · 2007 [cited by applicant]
US 20070130313A1 · King · 2007 [cited by examiner]
US 20070266426A1 · Iyengar · 2007 [cited by examiner]
US 20080243536A1 · Dworkin · 2008 [cited by examiner]
US 20080249972A1 · Dillon · 2008 [cited by applicant]
US 20090063415A1 · Chatfield et al. · 2009 [cited by applicant]
US 20090100342A1 · Jakobson · 2009 [cited by applicant]
US 20090177744A1 · Marlow et al. · 2009 [cited by applicant]
US 20100241760A1 · Zhang · 2010 [cited by examiner]
US 20100274893A1 · Abdelal · 2010 [cited by examiner]
US 20100293266A1 · Schilling · 2010 [cited by examiner]
US 20110218958A1 · Warshavsky et al. · 2011 [cited by applicant]
US 20110247051A1 · Bulumulla et al. · 2011 [cited by applicant]
US 20110314145A1 · Raleigh · 2011 [cited by examiner]
US 20120042218A1 · Cinarkaya et al. · 2012 [cited by applicant]
US 20120233137A1 · Jakobson et al. · 2012 [cited by applicant]
US 20120290407A1 · Hubbard et al. · 2012 [cited by applicant]
US 20120324091A9 · Raleigh · 2012 [cited by examiner]
US 20130080635A1 · Ho · 2013 [cited by examiner]
US 20130212497A1 · Zelenko et al. · 2013 [cited by applicant]
US 20130218948A1 · Jakobson · 2013 [cited by applicant]
US 20130218949A1 · Jakobson · 2013 [cited by applicant]
US 20130218966A1 · Jakobson · 2013 [cited by applicant]
US 20130232249A1 · Weihl · 2013 [cited by examiner]
US 20130247216A1 · Cinarkaya et al. · 2013 [cited by applicant]
US 20130301415A1 · Archer · 2013 [cited by examiner]
US 20140359537A1 · Jakobson et al. · 2014 [cited by applicant]
US 20150006289A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150007050A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150019913A1 · Singh · 2015 [cited by examiner]
US 20150088697A1 · Garnepudi · 2015 [cited by examiner]
US 20150095162A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150142596A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150172563A1 · Jakobson et al. · 2015 [cited by applicant]
US 20150249579A1 · Ellsworth · 2015 [cited by examiner]
US 20150304355A1 · Voit · 2015 [cited by examiner]
US 20160094611A1 · Chow · 2016 [cited by examiner]
US 20160112275A1 · Park · 2016 [cited by examiner]
US 20170078922A1 · Raleigh et al. · 2017 [cited by applicant]
US 20180260290A1 · Meaney · 2018 [cited by examiner]
US 20190182168A1 · Bastide · 2019 [cited by examiner]
US 20200310509A1 · Gendler · 2020 [cited by examiner]
US 20210109785A1 · Prabhakaran · 2021 [cited by examiner]
US 20210144517A1 · Guim Bernat · 2021 [cited by examiner]
US 20210211347A1 · Vasseur · 2021 [cited by examiner]
US 20210211490A1 · Zhang · 2021 [cited by examiner]
US 20220394079A1 · Thomas · 2022 [cited by examiner]
US 20230057068A1 · Bhandarkar et al. · 2023 [cited by applicant]
US 20230107052A1 · Brezner · 2023 [cited by examiner]
EP 3547625B1 · 2021 [cited by examiner]
EP 3952256B1 · 2024 [cited by examiner]
WO WO2010129275A2 · 2010 [cited by examiner]
WO WO2011149532A1 · 2011 [cited by examiner]
WO WO2012072690A1 · 2012 [cited by examiner]
WO WO2013170347A1 · 2013 [cited by examiner]
“Google Plus Users”, Google+Ripples, Oct. 31, 2011 [retrieved on Feb. 21, 2012 from Internet at http://www.googleplusers.com/google-ripples.html], 3 pages. [cited by applicant]