IP Library Granted Patent US 12,199,871
Granted Patent B2
US 12,199,871 · App. 18/525,686 · Granted Jan 14, 2025

Client side backoff filter for rate limiting

Inventors: Nandan B N (Shivamogga, IN); A. Sushanth Kamath (Bangalore, IN); Dhivya Arumugam (Karnataka, IN); Venkata Krishna Murthy Vadrevu (Bangalore, IN); Rajendra Jayendra Gosavi (Navi Mumbai, IN); Anil Kumar Attuluri (San Diego, CA); Sagar Shukla (Bagalore, IN); Jason Michael Webb (Valley Center, CA); Akash Jain (Bangalore, IN)
Assignee: Intuit Inc.
H04L47/115H04L67/56
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,199,871
App. No.
18/525,686
Granted
Jan 14, 2025
Kind
B2
Abstract

A method in a client backoff filter. The method includes receiving, from a server, a backoff data packet having backoff metadata. The method also includes saving the backoff metadata in a cache local to the client backoff filter. The method also includes receiving a subsequent request for service. The method also includes checking whether an attribute of the subsequent request for service matches the backoff metadata in the cache. The method also includes performing, responsive to checking, an action including at least one of the group including: blocking, responsive to the attribute matching the backoff metadata in the cache, transmission of the subsequent request for service to a server, and transmitting, responsive to the attribute failing to match the backoff metadata in the cache, the subsequent request for service to the server.

Claims (61)

1. A method in a client backoff filter, the method comprising:

receiving, from a server, a backoff data packet comprising backoff metadata;

saving the backoff metadata in a cache local to the client backoff filter;

receiving a subsequent request for service;

checking whether an attribute of the subsequent request for service matches the backoff metadata in the cache;

performing, responsive to checking, an action comprising at least one from a group consisting of:

blocking, responsive to the attribute matching the backoff metadata in the cache, transmission of the subsequent request for service to the server, and

transmitting, responsive to the attribute failing to match the backoff metadata in the cache, the subsequent request for service to the server,

wherein the client backoff filter is part of a client proxy by which a client that generates the subsequent request for service communicates with a server proxy for a server.

2. The method of claim 1 , further comprising:

receiving, before receiving the backoff data packet, a first request for service;

checking, responsive to receiving the first request for service, whether one or more backoff attributes matches the first request for service; and

transmitting, responsive to no match being found, the first request for service to a throttle filter of a server.

3. The method of claim 2 , wherein the backoff data packet is received responsive to transmitting the first request for service.

4. The method of claim 1 , further comprising:

receiving, before receiving the backoff data packet, a first request for service;

checking, responsive to receiving the first request for service, whether one or more backoff attributes matches the first request for service; and

blocking, responsive to a match existing between the one or more backoff attributes and the first request for service, transmission of the first request for service to a throttle filter of a server.

5. The method of claim 1 , further comprising:

forwarding the backoff data packet to a client that requested the subsequent request for service, wherein the backoff data packet commands the client to cease transmitting future requests for service.

6. The method of claim 1 , wherein the client backoff filter and the cache are programmed as an encoder, and wherein saving the backoff metadata in the cache further comprises:

saving, by the encoder, the backoff metadata as a key and a plurality of values for the key.

7. The method of claim 6 , wherein each of the plurality of values represents a corresponding backoff condition currently imposed on a service identified by the key.

8. The method of claim 7 , wherein the corresponding backoff condition comprises at least one from the group consisting of a time the corresponding backoff condition is applied, a quota on how many new service requests may be sent, and a communication path by which a new request for service may be sent.

9. The method of claim 1 , wherein the client backoff filter and the cache are programmed as a decoder, and wherein checking whether the attribute of the subsequent request for service matches the backoff metadata further comprises:

identifying a key in the cache, wherein the key corresponds to a service corresponding to the subsequent request for service;

comparing the attribute of the subsequent request for service to a value in the cache that corresponds to the key; and

determining that the attribute matches the attribute in the backoff metadata when the attribute matches the value.

10. A system comprising:

a server comprising a processor and a cache;

a data repository in communication with the server and storing:

a backoff data packet comprising backoff metadata,

a subsequent request for service, and

an attribute of the subsequent request for service; and

a client filter which, when executed by the processor:

receives the backoff data packet,

saves the backoff metadata in the cache,

receives the subsequent request for service,

checks whether the attribute of the subsequent request for service matches the backoff metadata in the cache, and

performs, responsive to checking, an action comprising at least one from the group consisting of:

blocking, responsive to the attribute matching the backoff metadata in the cache, transmission of the subsequent request for service to the server, and

transmitting, responsive to the attribute failing to match the backoff metadata in the cache, the subsequent request for service to the server,

wherein the client filter is part of a client proxy by which a client that generates the subsequent request for service communicates with a server proxy for a server.

11. The system of claim 10 , wherein the client filter, when executed by the processor, further:

receives, before receiving the backoff data packet, a first request for service,

checks, responsive to receiving the first request for service, whether one or more backoff attributes matches the first request for service, and

transmits, responsive to no match being found, the first request for service to a throttle filter of a server.

12. The system of claim 10 , wherein the client filter, when executed by the processor, further:

receives, before receiving the backoff data packet, a first request for service,

checks, responsive to receiving the first request for service, whether one or more backoff attributes matches the first request for service, and

blocks, responsive to a match existing between the one or more backoff attributes and the first request for service, transmission of the first request for service to a throttle filter of a server.

13. The system of claim 10 , wherein the client filter, when executed by the processor, further:

forwards the backoff data packet to a client that requested the subsequent request for service, wherein the backoff data packet commands the client to cease transmitting future requests for service.

14. The system of claim 10 , wherein the client filter and the cache are programmed as an encoder, and wherein saving the backoff metadata in the cache further comprises:

saving, by the encoder, the backoff metadata as a key and a plurality of values for the key.

15. The system of claim 14 , wherein each of the plurality of values represents a corresponding backoff condition currently imposed on a service identified by the key.

16. The system of claim 15 , wherein the corresponding backoff condition comprises at least one from the group consisting of a time the corresponding backoff condition is applied, a quota on how many new service requests may be sent, and a communication path by which a new request for service may be sent.

17. The system of claim 10 , wherein the client filter and the cache are programmed as a decoder, and wherein the client filter checking whether the attribute of the subsequent request for service matches the backoff metadata further comprises:

identifying a key in the cache, wherein the key corresponds to a service corresponding to the subsequent request for service;

comparing the attribute of the subsequent request for service to a value in the cache that corresponds to the key; and

determining that the attribute matches the attribute in the backoff metadata when the attribute matches the value.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 7, 2023
From: B N, NANDAN; KAMATH, A. SUSHANTH; ARUMUGAM, DHIVYA; VADREVU, VENKATA KRISHNA MURTHY; GOSAVI, RAJENDRA JAYENDRA; ATTULURI, ANIL KUMAR; SHUKLA, SAGAR; WEBB, JASON MICHAEL; JAIN, AKASH
To: INTUIT INC.
Reel/Frame 065792/0161 →
Continuity (2)
Continuation 18183020 · Mar 13, 2023
Related Publication 20240314075A1 · Sep 19, 2024
References Cited (19)
US 10033587B2 · Tofighbakhsh et al. · 2018 [cited by applicant]
US 10368255B2 · Gunasekara · 2019 [cited by examiner]
US 20040179499A1 · Sindhushayana · 2004 [cited by examiner]
US 20060200496A1 · Okman et al. · 2006 [cited by applicant]
US 20060235991A1 · Brown · 2006 [cited by examiner]
US 20070250212A1 · Halloran · 2007 [cited by examiner]
US 20110093557A1 · Riocreux et al. · 2011 [cited by applicant]
US 20120117621A1 · Kondamuru et al. · 2012 [cited by applicant]
US 20120257571A1 · Liao · 2012 [cited by applicant]
US 20140241333A1 · Kim · 2014 [cited by examiner]
US 20150023162A1 · Alisawi et al. · 2015 [cited by applicant]
US 20150358662A1 · Drouin · 2015 [cited by examiner]
US 20160291595A1 · Halloran · 2016 [cited by examiner]
US 20190149573A1 · Park et al. · 2019 [cited by applicant]
US 20200045117A1 · Ross et al. · 2020 [cited by applicant]
US 20200389487A1 · Zhauniarovich · 2020 [cited by examiner]
US 20210288735A1 · Yamagishi · 2021 [cited by applicant]
US 20220247686A1 · Rajagopalan · 2022 [cited by examiner]
“Rate-Limiting Strategies and Techniques”, https://cloud.google.com/architecture/rate-limiting-strategies-techniques, Feb. 8, 2023, 9 pages. [cited by applicant]