Method for prioritizing tasks queued at a server system
First Claim
Patent Images
1. A method for prioritizing for at least one processor a plurality of tasks of a plurality of users, comprising, for an unprocessed task provided by a user from the plurality of users,assigning a numerical priority to the user;
- calculating a monotonic metric M1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T1;
calculating a monotonic metric M2 for time interval between the unprocessed task and a preceding task provided by the user for the at least one processor within a prior time period T2;
calculating a monotonic metric M3 for cumulative task volume provided by the user for the at least one processor within a prior time period T3;
reducing the user'"'"'s numerical priority monotonically depending on M1, M2, and M3; and
assigning the user'"'"'s numerical priority to the unprocessed task;
wherein unprocessed tasks with higher priorities are selected for processing on the at least one processor before unprocessed tasks with lower priorities; and
wherein the at least one processor sequentially executes only one task at a time.
2 Assignments
0 Petitions
Accused Products
Abstract
An algorithm for assigning priorities to tasks queued for processing by users based on how heavily each task'"'"'s user used the system resources in the past, including the number of tasks queued by the user in the past, the volume of these tasks, and the amount of processor time used. In the OCR context, the tasks are graphic files placed on servers and chosen for processing in accordance with the assigned priorities.
-
Citations
15 Claims
-
1. A method for prioritizing for at least one processor a plurality of tasks of a plurality of users, comprising, for an unprocessed task provided by a user from the plurality of users,
assigning a numerical priority to the user; -
calculating a monotonic metric M1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T1; calculating a monotonic metric M2 for time interval between the unprocessed task and a preceding task provided by the user for the at least one processor within a prior time period T2; calculating a monotonic metric M3 for cumulative task volume provided by the user for the at least one processor within a prior time period T3; reducing the user'"'"'s numerical priority monotonically depending on M1, M2, and M3; and assigning the user'"'"'s numerical priority to the unprocessed task; wherein unprocessed tasks with higher priorities are selected for processing on the at least one processor before unprocessed tasks with lower priorities; and wherein the at least one processor sequentially executes only one task at a time. - View Dependent Claims (2, 3, 4, 5)
-
-
6. A system comprising:
- a computer server or a cloud server being equipped with physical memory for storing tasks and software capable of executing instructions for prioritizing for at least one processor a plurality of tasks of a plurality of users, comprising, for an unprocessed task provided by a user.
calculating a monotonic metric M1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T1; calculating a monotonic metric M2 for time interval between the unprocessed task and a preceding task provided by the user for the at least one processor within a prior time period T2; calculating a monotonic metric M3 for cumulative task volume provided by the user for the at least one processor within a prior time period T3; reducing the user'"'"'s numerical priority monotonically depending on M1, M2, and M3; and assigning the user'"'"'s numerical priority to the unprocessed task; wherein unprocessed tasks with higher priorities are selected for processing on the at least one processor before unprocessed tasks with lower priorities; and wherein the at least one processor sequentially executes only one task at a time. - View Dependent Claims (7, 8, 9, 10)
- a computer server or a cloud server being equipped with physical memory for storing tasks and software capable of executing instructions for prioritizing for at least one processor a plurality of tasks of a plurality of users, comprising, for an unprocessed task provided by a user.
-
11. A physical, non-transitory computer storage medium having stored thereon a program which when executed by a processor, performs instructions for prioritizing for at least one processor a plurality of tasks of a plurality of users, comprising, for an unprocessed task provided by a user from the plurality of users,
assigning a numerical priority to the user; -
calculating a monotonic metric M1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T1; calculating a monotonic metric M2 for time interval between the unprocessed task and a preceding task provided by the user for the at least one processor within a prior time period T2; calculating a monotonic metric M3 for cumulative task volume provided by the user for the at least one processor within a prior time period T3; reducing the user'"'"'s numerical priority monotonically depending on M1, M2, and M3; and assigning the user'"'"'s numerical priority to the unprocessed task; wherein unprocessed tasks with higher priorities are selected for processing on the at least one processor before unprocessed tasks with lower priorities; and wherein the at least one processor sequentially executes only one task at a time. - View Dependent Claims (12, 13, 14, 15)
-
Specification