IP Library › Granted Patent US 9,424,077
Granted Patent B2
US 9,424,077 · App. 14/542,362 · Granted Aug 23, 2016

Throttle control on cloud-based computing tasks utilizing enqueue and dequeue counters

Inventors: Mao Geng (Foster City, CA); Yukching Leung (Palo Alto, CA); Ming Zhang (Shanghai, CN); Fan Wang (Shanghai, CN)
Assignee: SUCCESSFACTORS, INC.
G06F9/4818G06F9/4881
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 9,424,077
App. No.
14/542,362
Granted
Aug 23, 2016
Kind
B2
Abstract

Systems and methods for throttle control on cloud-based computing tasks are provided. An example method includes, obtaining a service request from a first user, in a plurality of users, of the computer system; in accordance with a first determination that placing the service request in a service queue associated with the first user would not cause an enqueue counter associated with the first user to be exceeded, causing the service request to be placed in the service quest to await execution. The method also includes, after the service request is placed in the service queue, in accordance with a second determination that executing the service request would not cause a dequeue counter associated with the first user to be exceeded, causing the service request to be executed.

Claims (76)

1. A method comprising:

at a computer system having one or more processors and memory storing one or more programs for execution by the one or more processors,

obtaining a service request from a first user, in a plurality of users, of the computer system;

in accordance with a determination that placing the service request in a service queue associated with the first user would not cause an enqueue counter associated with the first user to be exceeded,

causing the service request to be placed in the service queue to await execution, wherein the enqueue counter reflects service requests awaiting execution and currently being executed; and

after the service request is placed in the service queue,

in accordance with a determination that executing the service request would not cause a dequeue counter that is separate from the enqueue counter associated with the first user to be exceeded,

causing the service request to be executed;

in accordance with a determination that the service request is not successfully completed and the service request is not to be tried within a first predefined time period,

abandoning the service request by removing the service request from the service queue without execution;

causing the dequeue counter associated with the first user to be decreased; and

causing the enqueue counter associated with the first user to be decreased.

2. The method of claim 1 , further comprising in accordance with a determination that placing the service request in a service queue associated with the computer system would cause the enqueue counter associated with the first user to be exceeded,

declining to place the service request in the service queue to await execution; and

throwing an exception by notifying the first user that the service request has not been placed in the service queue.

3. The method of claim 1 , further comprising in accordance with a determination that executing the service request would cause the dequeue counter associated with the first user to be exceeded,

declining to cause the service request to be executed.

4. The method of claim 3 , wherein declining to cause the service request to be executed includes,

in accordance with a determination that the service request is to be retried within a second predefined time period,

causing the service request to be placed back into the service queue; and

causing the service request to be retried within the second predefined time period.

5. The method of claim 4 , wherein causing the service request to be placed back into the service queue includes,

causing the service request to be placed at a same location within the service queue; or

causing the service request to be placed at a different location within the service queue.

6. The method of claim 1 , wherein causing the service request to be placed in the service quest to await execution includes, causing the enqueue counter associated with the first user to be increased.

7. The method of claim 6 , further comprising in accordance with a determination that the service request is completed, causing the enqueue counter associated with the first user to be decreased.

8. The method of claim 1 , wherein causing the service request to be executed includes, causing the dequeue counter associated with the first user to be increased.

9. The method of claim 8 , further comprising in accordance with a determination that the service request is successfully completed, causing the enqueue counter associated with the first user to be decreased.

10. The method of claim 8 , further comprising in accordance with a determination that the service request is not successfully completed,

in accordance with the determination that the service request is to be tried within the first predefined time period,

causing the dequeue counter associated with the first user to be decreased; and

causing the service request to be tried within the first predefined time period.

11. The method of claim 1 , wherein the service queue is of a predetermined size or a variable size.

12. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computing system with one or more processors, cause the computing system to execute a method of:

obtaining a service request from a first user, in a plurality of users, of the computer system;

in accordance with a determination that placing the service request in a service queue associated with the first user would not cause an enqueue counter associated with the first user to be exceeded,

causing the service request to be placed in the service queue to await execution, wherein the enqueue counter reflects service requests awaiting execution and currently being executed; and

after the service request is placed in the service queue,

in accordance with a determination that executing the service request would not cause a dequeue counter that is separate from the enqueue counter associated with the first user to be exceeded,

causing the service request to be executed;

in accordance with a determination that the service request is not successfully completed and the service request is not to be tried within a first predefined time period,

abandoning the service request by removing the service request from the service queue without execution;

causing the dequeue counter associated with the first user to be decreased; and

causing the enqueue counter associated with the first user to be decreased.

13. The non-transitory computer readable storage medium of claim 12 , wherein the one or more programs further comprise instructions for: in accordance with a determination that placing the service request in a service queue associated with the computer system would cause the enqueue counter associated with the first user to be exceeded,

declining to place the service request in the service queue to await execution; and

throwing an exception by notifying the first user that the service request has not been placed in the service queue.

14. The non-transitory computer readable storage medium of claim 12 , wherein the one or more programs further comprise instructions for: in accordance with a determination that executing the service request would cause the dequeue counter associated with the first user to be exceeded,

declining to cause the service request to be executed.

15. The non-transitory computer readable storage medium of claim 14 , wherein declining to cause the service request to be executed includes,

in accordance with a determination that the service request is to be retried within a second predefined time period,

causing the service request to be placed back into the service queue; and

causing the service request to be retried within the second predefined time period.

16. A computer system, comprising,

one or more processors;

memory; and

one or more programs, wherein the one or more programs are stored in the memory and configured to be executed by the one or more processors, the one or more programs including instructions for:

obtaining a service request from a first user, in a plurality of users, of the computer system;

in accordance with a determination that placing the service request in a service queue associated with the first user would not cause an enqueue counter associated with the first user to be exceeded,

causing the service request to be placed in the service queue to await execution, wherein the enqueue counter reflects service requests awaiting execution and currently being executed; and

after the service request is placed in the service queue,

in accordance with a determination that executing the service request would not cause a dequeue counter that is separate from the enqueue counter associated with the first user to be exceeded,

causing the service request to be executed;

in accordance with a determination that the service request is not successfully completed and the service request is not to be tried within a first predefined time period,

abandoning the service request by removing the service request from the service queue without execution;

causing the dequeue counter associated with the first user to be decreased; and

causing the enqueue counter associated with the first user to be decreased.

17. The system of claim 16 , wherein the one or more programs further comprise instructions for: in accordance with a determination that placing the service request in a service queue associated with the computer system would cause the enqueue counter associated with the first user to be exceeded,

declining to place the service request in the service queue to await execution; and

throwing an exception by notifying the first user that the service request has not been placed in the service queue.

18. The system of claim 16 , wherein the one or more programs further comprise instructions for: in accordance with a determination that executing the service request would cause the dequeue counter associated with the first user to be exceeded,

declining to cause the service request to be executed.

19. The system of claim 18 , wherein declining to cause the service request to be executed includes,

in accordance with a determination that the service request is to be retried within a second predefined time period,

causing the service request to be placed back into the service queue; and

causing the service request to be retried within the second predefined time period.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2014
From: GENG, MAO; LEUNG, YUKCHING; ZHANG, MING; WANG, FAN
To: SUCCESSFACTORS, INC.
Reel/Frame 034179/0001 →
Continuity (1)
Related Publication 20160139952A1 · May 19, 2016