IP Library Granted Patent US 9,378,061
Granted Patent B2
US 9,378,061 · App. 14/571,832 · Granted Jun 28, 2016

Method for prioritizing tasks queued at a server system

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,378,061
App. No.
14/571,832
Granted
Jun 28, 2016
Kind
B2
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.

Claims (44)

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 M 1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T 1 ;

calculating a monotonic metric M 2 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 T 2 ;

calculating a monotonic metric M 3 for cumulative task volume provided by the user for the at least one processor within a prior time period T 3 ;

reducing the user's numerical priority monotonically depending on M 1 , M 2 , and M 3 ; 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. The method of claim 1 , further comprising:

calculating a monotonic metric M 4 for cumulative task volume provided by the user for the at least one processor within an earlier time period T 4 ; and

reducing the user's numerical priority monotonically depending on M 1 , M 2 , M 3 , and M 4 .

3. The method of claim 1 , wherein the at least one processor executes any of the plurality of tasks entirely without interrupting for any other task of the plurality of tasks or simultaneously processing any other task of the plurality of tasks.

4. The method of claim 1 , wherein the user's numerical priority is an integer within an interval.

5. The method of claim 1 , wherein among unprocessed tasks with equal priorities the task provided for processing at an earlier moment is selected for processing on the at least one processor before other unprocessed tasks with equal priorities.

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 M 1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T 1 ;

calculating a monotonic metric M 2 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 T 2 ;

calculating a monotonic metric M 3 for cumulative task volume provided by the user for the at least one processor within a prior time period T 3 ;

reducing the user's numerical priority monotonically depending on M 1 , M 2 , and M 3 ; 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.

7. The system of claim 6 , wherein the instructions further comprise:

calculating a monotonic metric M 4 for cumulative task volume provided by the user for the at least one processor within an earlier time period T 4 ; and

reducing the user's numerical priority monotonically depending on M 1 , M 2 , M 3 , and M 4 .

8. The system of claim 6 , wherein the at least one processor executes any of the plurality of tasks entirely without interrupting for any other task of the plurality of tasks or simultaneously processing any other task of the plurality of tasks.

9. The system of claim 6 , wherein the user's numerical priority is an integer within an interval.

10. The system of claim 6 , wherein among unprocessed tasks with equal priorities the task provided for processing at an earlier moment is selected for processing on the at least one processor before other unprocessed tasks with equal priorities.

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 M 1 for cumulative processor time used by prior tasks provided by the user on the at least one processor within a prior time period T 1 ;

calculating a monotonic metric M 2 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 T 2 ;

calculating a monotonic metric M 3 for cumulative task volume provided by the user for the at least one processor within a prior time period T 3 ;

reducing the user's numerical priority monotonically depending on M 1 , M 2 , and M 3 ; 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.

12. The medium of claim 11 , wherein the instructions further comprise:

calculating a monotonic metric M 4 for cumulative task volume provided by the user for the at least one processor within an earlier time period T 4 ; and

reducing the user's numerical priority monotonically depending on M 1 , M 2 , M 3 , and M 4 .

13. The medium of claim 11 , wherein the at least one processor executes any of the plurality of tasks entirely without interrupting for any other task of the plurality of tasks or simultaneously processing any other task of the plurality of tasks.

14. The medium of claim 11 , wherein the user's numerical priority is an integer within an interval.

15. The medium of claim 11 , wherein among unprocessed tasks with equal priorities the task provided for processing at an earlier moment is selected for processing on the at least one processor before other unprocessed tasks with equal priorities.

Assignments (2)
MERGER Recorded Dec 31, 2018
From: ABBYY DEVELOPMENT LLC
To: ABBYY PRODUCTION LLC
Reel/Frame 047997/0652 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 16, 2015
From: PANFEROV, VASILY VLADIMIROVICH; MESHERYAKOV, DMITRY KONSTANTINOVICH
To: ABBYY DEVELOPMENT LLC
Reel/Frame 034740/0315 →