Scalable task scheduling
First Claim
1. A method comprising:
- at a respective server system having one or more processors and memory storing one or more programs that when executed by the one or more processors cause the respective server system to perform the method, the method comprising;
receiving, from a client, a request to perform a first task;
determining whether a first slot in a primary task queue having a plurality of slots is available, wherein the first slot was selected in accordance with a slot-selection function designed to probabilistically distribute respective target slots for a plurality of successive tasks across a plurality of different non-consecutive slots in the primary task queue;
in accordance with a determination that the first slot is available, inserting the first task in the first slot in the primary task queue; and
in accordance with a determination that the first slot is unavailable, inserting the first task at an entry point of a secondary task queue.
2 Assignments
0 Petitions
Accused Products
Abstract
A server system having one or more processors and memory receives, from a client, a request to perform a first task. The server system determines whether a first slot in a primary task queue having a plurality of slots is available, where the first slot was selected in accordance with a slot-selection function designed to probabilistically distribute respective target slots for a plurality of successive tasks across a plurality of different non-consecutive slots in the primary task queue. In accordance with a determination that the first slot is available, the server system inserts the first task in the first slot in the primary task queue. In accordance with a determination that the first slot is unavailable, the server system inserts the first task at an entry point of a secondary task queue.
-
Citations
29 Claims
-
1. A method comprising:
at a respective server system having one or more processors and memory storing one or more programs that when executed by the one or more processors cause the respective server system to perform the method, the method comprising; receiving, from a client, a request to perform a first task; determining whether a first slot in a primary task queue having a plurality of slots is available, wherein the first slot was selected in accordance with a slot-selection function designed to probabilistically distribute respective target slots for a plurality of successive tasks across a plurality of different non-consecutive slots in the primary task queue; in accordance with a determination that the first slot is available, inserting the first task in the first slot in the primary task queue; and in accordance with a determination that the first slot is unavailable, inserting the first task at an entry point of a secondary task queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
14. A server 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; receiving, from a client, a request to perform a first task; determining whether a first slot in a primary task queue having a plurality of slots is available, wherein the first slot was selected in accordance with a slot-selection function designed to probabilistically distribute respective target slots for a plurality of successive tasks across a plurality of different non-consecutive slots in the primary task queue; in accordance with a determination that the first slot is available, inserting the first task in the first slot in the primary task queue; and in accordance with a determination that the first slot is unavailable, inserting the first task at an entry point of a secondary task queue. - View Dependent Claims (15, 16, 17, 18, 19, 20, 21)
-
-
22. A non-transitory computer readable storage medium storing one or more programs, the one or more programs comprising instructions, which when executed by a computer system with one or more processors, cause the computer system to:
-
receive, from a client, a request to perform a first task; determine whether a first slot in a primary task queue having a plurality of slots is available, wherein the first slot was selected in accordance with a slot-selection function designed to probabilistically distribute respective target slots for a plurality of successive tasks across a plurality of different non-consecutive slots in the primary task queue; in accordance with a determination that the first slot is available, insert the first task in the first slot in the primary task queue; and in accordance with a determination that the first slot is unavailable, insert the first task at an entry point of a secondary task queue. - View Dependent Claims (23, 24, 25, 26, 27, 28, 29)
-
Specification