IP Library › Granted Patent US 11,822,959
Granted Patent B2
US 11,822,959 · App. 17/675,093 · Granted Nov 21, 2023

Methods and systems for processing requests using load-dependent throttling

Inventors: Robert Mic (St. Thomas, CA); Aline Fatima Manera (Kitchener, CA); Timothy Willard (Kitchener, CA); Nicole Simone (Kitchener, CA); Scott Weber (Kitchener, CA)
Assignee: Shopify Inc.
G06F9/4881G06F1/08G06F9/5005G06F9/54
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 11,822,959
App. No.
17/675,093
Granted
Nov 21, 2023
Kind
B2
Abstract

Methods and systems for processing requests with load-dependent throttling. The system compares a count of active job requests being currently processed for a user associated with a new job request with an active job cap number for that user. When the count of active job requests being currently processed for that user does not exceed the active job cap number specific to that user, the job request is added to an active job queue for processing. However, when the count of active job requests being currently processed for that user exceeds the active job cap number, the job request is placed on a throttled queue to await later processing when an updated count of active job requests being currently processed for that user is below the active job cap number. Once the count is below the cap, the throttle request is moved to the active job queue for processing.

Claims (46)

1. A computing device, comprising:

one or more processors;

one or more data storage units; and

an application stored in the one or more data storage units and having processor-readable instructions that, when executed by the one or more processors, are to cause the one or more processors to:

receive a job request to implement an action from a feature set having one or more configurable actions, the job request associated with a particular user of the feature set;

compare a count of active job requests being currently processed for the particular user with an active job cap number for that user; and

selectively process the job request based on the comparison of the count of active job requests currently processed for the particular user with the active job cap number for that user,

wherein when the count of active job requests being currently processed for the particular one of the users does not exceed the active job cap number, the job request is added to an active job queue for processing, and

wherein when the count of active job requests being currently processed for the particular user exceeds the active job cap number, the job request is placed on a throttled queue to await later processing when an updated count of active job requests being currently processed for the particular user is below the active job cap number for that user.

2. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, are to cause the one or more processors to later process the job request added to the throttled queue by transferring the job request from the throttled queue to the active job queue.

3. The computing device of claim 2 , wherein the instructions, when executed by the one or more processors, are to further cause the processors to determine the updated count of active job requests being currently processed for the particular user in response to detecting an unthrottling trigger event.

4. The computing device of claim 1 , wherein the active job cap number for the particular user is associated with the feature set corresponding to the job request.

5. The computing device of claim 1 , wherein the active job queue includes, for each job request in the active job queue, a user identifier identifying a user associated with that job request.

6. The computing device of claim 5 , wherein the instructions, when executed by the one or more processors, are to further cause the one or more processors to determine the count of active job requests being currently processed for the particular user by counting a number of user identifiers in the active job queue identifying that user.

7. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, are to cause the one or more processors to place the job request on the throttled queue on condition that the one or more processing units determine that the job request is not a high priority job request.

8. The computing device of claim 1 , wherein the instructions, when executed by the one or more processors, are to further cause the one or more processors to:

receive a second job request to implement a second action associated with the particular user;

determine that a current count of active job requests being processed for the particular user exceeds the active job cap number for that user;

determine that the second job request is a high priority job request; and

in response, add the second job request to the active job queue instead of the throttled queue.

9. The computing device of claim 1 , wherein the job request is generated responsive to detecting a trigger condition associated with the action.

10. A computer-implemented method comprising:

receiving a job request to implement an action from a feature set having one or more configurable actions, the job request associated with a particular user of the feature set;

comparing a count of active job requests being currently processed for the particular user with an active job cap number for that user; and

selectively processing the job request based on the comparison of the count of active job requests currently processed for the particular user with the active job cap number for that user,

wherein when the count of active job requests being currently processed for the particular user does not exceed the active job cap number, the job request is added to an active job queue for processing, and

wherein when the count of active job requests being currently processed for the particular user exceeds the active job cap number, the job request is placed on a throttled queue to await later processing when an updated count of active job requests being currently processed for the particular user is below the active job cap number for that user.

11. The method of claim 10 , wherein the later processing of the job request added to the throttled queue includes transferring the job request from the throttled queue to the active job queue.

12. The method of claim 11 , wherein determining the updated count of active job requests being currently processed for the particular user occurs in response to detecting an unthrottling trigger event.

13. The method of claim 10 , wherein the active job cap number for the particular user is associated with the feature set corresponding to the job request.

14. The method of claim 10 , wherein the active job queue includes, for each job request in the active job queue, a user identifier identifying a user associated with that job request.

15. The method of claim 14 , further comprising determining the count of active job requests being currently processed for the particular user by counting a number of user identifiers in the active job queue identifying that user.

16. The method of claim 10 , wherein placing the job request on the throttled queue requires, as a precondition, determining that the job request is not a high priority job request.

17. The method of claim 10 , further comprising:

receiving a second job request to implement a second action associated with the particular user;

determining that a current count of active job requests being processed for the particular user exceeds the active job cap number for that user;

determining that the second job request is a high priority job request; and

in response, adding the second job request to the active job queue instead of the throttled queue.

18. The method of claim 10 , wherein the job request is generated responsive to detecting a trigger condition associated with the action.

19. A non-transitory, computer-readable medium storing computer-executable instructions that, when executed by one or more processors, are to cause the one or more processors to:

receive a job request to implement an action from a feature set having one or more configurable actions, the job request associated with a particular user of the feature set;

compare a count of active job requests being currently processed for the particular user with an active job cap number for that user; and

selectively process the job request based on the comparison of the count of active job requests currently processed for the particular user with the active job cap number for that user,

wherein when the count of active job requests being currently processed for the particular user does not exceed the active job cap number, the job request is added to an active job queue for processing, and

wherein when the count of active job requests being currently processed for the particular user exceeds the active job cap number, the job request is placed on a throttled queue to await later processing when an updated count of active job requests being currently processed for the particular user is below the active job cap number for that user.

20. The non-transitory, computer-readable medium of claim 19 , wherein the instructions, when executed by the one or more processors, are to cause the one or more processors to later process the job request added to the throttled queue by transferring the job request from the throttled queue to the active job queue.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 9, 2022
From: MIC, ROBERT; MANERA, ALINE FATIMA; WILLARD, TIMOTHY; SIMONE, NICOLE; WEBER, SCOTT
To: SHOPIFY INC.
Reel/Frame 059205/0498 →
Continuity (1)
Related Publication 20230266995A1 · Aug 24, 2023