IP Library Granted Patent US 9,886,320
Granted Patent B2
US 9,886,320 · App. 15/192,495 · Granted Feb 6, 2018

Method for prioritizing tasks queued at a server system

Inventors: Vasily Vladimirovich Panferov (Moscow Region, RU); Dmitry Konstantinovich Mesheryakov (Moscow, RU)
Assignee: ABBYY DEVELOPMENT LLC
G06F9/5038G06F9/4881H04L47/821G06F2209/5021
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,886,320
App. No.
15/192,495
Granted
Feb 6, 2018
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 (52)

1. A method for prioritizing tasks using a computer server, comprising:

identifying, by the computer server, a first task to be executed by a processor, the first task provided by a user at a first time;

determining, by the computer server, a cumulative processor time for an execution of a set of tasks by the processor during a first prior time interval, wherein the first prior time interval ends before the first time, and wherein each task of the set of tasks is provided by the user;

computing, by the computer server, a first metric based on the cumulative processor time;

identifying, by the computer server, a second task provided by the user at a second time that is before the first time;

computing, by the computer server, a second metric based on a time difference between the first time and the second time;

determining, by the computer server, a cumulative task volume for one or more tasks provided by the user during a second prior time interval, wherein the second prior time interval ends before the first time;

computing, by the computer server, a third metric based on the cumulative task volume;

determining, by the computer server, a priority for the user based on at least one of the first metric, the second metric, or the third metric;

assigning, by the computer server, the priority to the first task; and

scheduling, in view of the priority, an execution of the first task to be performed by the processor.

2. The method of claim 1 wherein the determining of the priority is in view of a prior priority for the user.

3. The method of claim 2 wherein the determining of the priority comprises reducing the prior priority.

4. The method of claim 1 wherein the first metric is a monotonic function of the cumulative processor time.

5. The method of claim 1 wherein the second metric is a monotonic function of the time difference between the first time and the second time.

6. The method of claim 1 wherein the third metric is a monotonic function of the cumulative task volume.

7. The method of claim 1 wherein the processor executes at most one task at a time.

8. An apparatus comprising:

a network interface device; and

a processor, operatively coupled to the network interface device, to:

receive, via the network interface device, a first task to be executed, wherein the first task is provided by a user at a first time;

determine a cumulative processor time for an execution of a set of tasks during a first prior time interval, wherein the first prior time interval ends before the first time, and wherein each task of the set of tasks is provided by the user;

compute a first metric based on the cumulative processor time;

identify a second task provided by the user at a second time that is before the first time;

compute a second metric based on a time difference between the first time and the second time;

determine a cumulative task volume for one or more tasks provided by the user during a second prior time interval, wherein the second prior time interval ends before the first time;

compute a third metric based on the cumulative task volume;

determine a priority for the user based on at least one of the first metric, the second metric, or the third metric;

assign the priority to the first task; and

schedule an execution of the first task in view of the priority.

9. The apparatus of claim 8 wherein the determining of the priority is in view of a prior priority for the user.

10. The apparatus of claim 9 wherein the determining of the priority comprises reducing the prior priority.

11. The apparatus of claim 8 wherein the first metric is a monotonic function of the cumulative processor time.

12. The apparatus of claim 8 wherein the second metric is a monotonic function of the time difference between the first time and the second time.

13. The apparatus of claim 8 wherein the third metric is a monotonic function of the cumulative task volume.

14. A non-transitory computer-readable storage medium comprising instructions that when executed by a processor, cause the processor to:

identify a first task to be executed, the first task provided by a user at a first time;

determine a cumulative processor time for an execution of a set of tasks during a first prior time interval, wherein the first prior time interval ends before the first time, and wherein each task of the set of tasks is provided by the user;

compute a first metric based on the cumulative processor time;

identify a second task provided by the user at a second time that is before the first time;

compute a second metric based on a time difference between the first time and the second time;

determine a cumulative task volume for one or more tasks provided by the user during a second prior time interval, wherein the second prior time interval ends before the first time;

compute a third metric based on the cumulative task volume;

determine a priority for the user based on at least one of the first metric, the second metric, or the third metric;

assign the priority to the first task; and

schedule an execution of the first task in view of the priority.

15. The non-transitory computer-readable storage medium of claim 14 wherein the determining of the priority is in view of a prior priority for the user.

16. The non-transitory computer-readable storage medium of claim 15 wherein the determining of the priority comprises reducing the prior priority.

17. The non-transitory computer-readable storage medium of claim 14 wherein the first metric is a monotonic function of the cumulative processor time.

18. The non-transitory computer-readable storage medium of claim 14 wherein the second metric is a monotonic function of the time difference between the first time and the second time.

19. The non-transitory computer-readable storage medium of claim 14 wherein the third metric is a monotonic function of the cumulative task volume.

20. The non-transitory computer-readable storage medium of claim 14 wherein the processor executes at most one task at a time.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 25, 2022
From: ABBYY PRODUCTION LLC
To: ABBYY DEVELOPMENT INC.
Reel/Frame 059249/0873 →
MERGER Recorded Jan 24, 2019
From: ABBYY DEVELOPMENT LLC
To: ABBYY PRODUCTION LLC
Reel/Frame 048129/0558 →
Priority Claims (1)
RU 2014125148 · Jun 23, 2014 · national
Continuity (2)
Continuation 14571832 · Dec 16, 2014
Related Publication 20170046200A1 · Feb 16, 2017