IP Library Granted Patent US 12,436,810
Granted Patent B2
US 12,436,810 · App. 18/491,964 · Granted Oct 7, 2025

Iterative workload processing having a mandatory processing task and a preferred processing task

Inventors: Ali Ok (Istanbul, AR); Leigh Griffin (Waterford City, IE)
Assignee: Red Hat, Inc.
G06F9/5038A63F13/35A63F13/577A63F13/69
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 12,436,810
App. No.
18/491,964
Granted
Oct 7, 2025
Kind
B2
Abstract

Iterative workload processing having a mandatory processing task and a preferred processing task. A processor device iteratively performs a processing workload that comprises a mandatory processing task and a preferred processing task. The mandatory processing task includes accessing a plurality of input messages that have not yet been processed, and the preferred processing task has a target timeframe within which to be performed. For each iteration, a maximum preferred processing task amount of time to perform the preferred processing task is determined based on a moving average of mandatory processing task times of previous iterations and based on the target timeframe. The preferred processing task is performed for a period of time no greater than the maximum preferred processing task amount of time.

Claims (95)

1. A method, comprising:

iteratively performing, by a processor device of a central computing device communicatively coupled to a plurality of client computing devices via one or more networks, a processing workload that comprises a mandatory processing task and a preferred processing task; and

for each iteration:

starting a first timer;

processing a plurality of input messages received from a client computing device of the plurality of client computing devices that have not yet been processed;

pausing the first timer;

performing the preferred processing task;

restarting the first timer;

sending output messages to the plurality of client computing devices in response to the plurality of input messages;

stopping the first timer; and

calculating, based on a value of the first timer, a moving average of mandatory processing task times.

2. The method of claim 1 , further comprising:

during each iteration:

subsequent to processing the plurality of input messages received from the client computing device from among the plurality of client computing devices that have not yet been processed, determining a maximum preferred processing task amount of time to perform the preferred processing task during the iteration;

wherein performing the preferred processing task comprises performing the preferred processing task for a period of time no greater than the maximum preferred processing task amount of time.

3. The method of claim 2 , wherein the maximum preferred processing task amount of time to perform the preferred processing task is based on a current value of a moving average of mandatory processing task times and a target timeframe.

4. The method of claim 1 , wherein starting the first timer comprises starting the first timer and a second timer, and further comprising:

during each iteration:

subsequent to calculating, based on the value of the first timer, the moving average of mandatory processing task times, resetting the first timer;

stopping the second timer;

determining a remaining amount of time for the iteration based on a difference between a value of the second timer and a target timeframe; and

waiting for the remaining amount of time.

5. The method of claim 1 , wherein performing the preferred processing task comprises:

determining a maximum preferred processing task amount of time based on a moving average of mandatory processing task times and a target timeframe;

determining a number of model update steps based on a moving average of model update step times and the maximum preferred processing task amount of time;

determining a game time interval for each model update step of the model update steps based on the number of model update steps and a predetermined incremental amount of game time; and

setting an iteration counter to a value of zero.

6. The method of claim 5 , further comprising:

subsequent to setting the iteration counter to the value of zero, starting a third timer;

updating a simulation model that identifies a plurality of virtual objects forward an incremental amount of game time based on the game time interval;

detecting interactions between the plurality of virtual objects based on the game time interval;

stopping the third timer; and

updating the moving average of model update step times based on a value of the third timer.

7. The method of claim 6 , further comprising:

subsequent to updating the moving average of model update step times, resetting the third timer;

incrementing the iteration counter; and

determining whether the iteration counter is equal to the moving average of model update step times.

8. The method of claim 5 , wherein determining the number of model update steps based on the moving average of model update step times and the maximum preferred processing task amount of time comprises:

calculating a result by dividing the maximum preferred processing task amount of time by a current value of the moving average of model update step times; and

multiplying the result by a relax factor, wherein the number of model update steps comprises the result multiplied by the relax factor.

9. The method of claim 1 , wherein the mandatory processing task comprises accessing the plurality of input messages received from the client computing device from among the plurality of client computing devices that have not yet been processed.

10. The method of claim 1 , wherein the preferred processing task comprises generating a content recommendation for each input message of the plurality of input messages received from the client computing device.

11. The method of claim 10 , further comprising:

determining a number of content recommendations to be generated; and

calculating a time to perform the preferred processing task by dividing a maximum preferred processing task amount of time to perform the preferred processing task by the number of content recommendations to be generated.

12. The method of claim 10 , wherein the output messages comprise the content recommendation generated for each input message.

13. The method of claim 1 , wherein the first timer tracks an amount of time of the mandatory processing task and a second timer tracks an amount of time of the mandatory processing task and the preferred processing task.

14. A computing device, comprising:

a memory; and

a processor device coupled to the memory to:

iteratively perform, by an application server communicatively coupled to a plurality of client computing devices via one or more networks, a processing workload that comprises a mandatory processing task and a preferred processing task; and

for each iteration:

start a first timer;

process a plurality of input messages received from a client computing device of the plurality of client computing devices that have not yet been processed;

pause the first timer;

perform the preferred processing task;

restart the first timer;

send output messages to the plurality of client computing devices in response to the plurality of input messages;

stop the first timer; and

calculate, based on a value of the first timer, a moving average of mandatory processing task times.

15. The computing device of claim 14 , wherein the processor device is further to:

during each iteration:

subsequent to processing the plurality of input messages received from the client computing device from among the plurality of client computing devices that have not yet been processed, determine a maximum preferred processing task amount of time to perform the preferred processing task during the iteration;

wherein to perform the preferred processing task, the processor device is to perform the preferred processing task for a period of time no greater than the maximum preferred processing task amount of time.

16. The computing device of claim 14 , wherein to start the first timer comprises, the processor device is to start the first timer and a second timer, and the processor device is further to:

during each iteration:

subsequent to calculating, based on the value of the first timer, the moving average of mandatory processing task times, reset the first timer;

stop the second timer;

determine a remaining amount of time for the iteration based on a difference between a value of the second timer and a target timeframe; and

wait for the remaining amount of time.

17. The computing device of claim 14 , wherein to perform the preferred processing task, the processor device is to:

determine a maximum preferred processing task amount of time based on a moving average of mandatory processing task times and a target timeframe;

determine a number of model update steps based on a moving average of model update step times and the maximum preferred processing task amount of time;

determine a game time interval for each model update step of the model update steps based on the number of model update steps and a predetermined incremental amount of game time; and

set an iteration counter to a value of zero.

18. The computing device of claim 17 , wherein the processor device is further to:

subsequent to setting the iteration counter to the value of zero, start a third timer;

update a simulation model that identifies a plurality of virtual objects forward an incremental amount of game time based on the game time interval;

detect interactions between the plurality of virtual objects based on the game time interval;

stop the third timer; and

update the moving average of model update step times based on a value of the third timer.

19. The computing device of claim 17 , wherein to determine the number of model update steps based on the moving average of model update step times and the maximum preferred processing task amount of time, the processor device is to:

calculate a result by dividing the maximum preferred processing task amount of time by a current value of the moving average of model update step times; and

multiply the result by a relax factor, wherein the number of model update steps comprises the result multiplied by the relax factor.

20. A computer program product stored on a non-transitory computer-readable storage medium and including computer-executable instructions to cause a processor device to:

iteratively perform, by an application server communicatively coupled to a plurality of client computing devices via one or more networks, a processing workload that comprises a mandatory processing task and a preferred processing task; and

for each iteration:

start a first timer;

process a plurality of input messages received from a client computing device of the plurality of client computing devices that have not yet been processed;

pause the first timer;

perform the preferred processing task;

restart the first timer;

send output messages to the plurality of client computing devices in response to the plurality of input messages;

stop the first timer; and

calculate, based on a value of the first timer, a moving average of mandatory processing task times.

Assignments (2)
CHANGE OF NAME Recorded Mar 3, 2026
From: RED HAT, INC.
To: RED HAT, LLC
Reel/Frame 074913/0759 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 27, 2023
From: OK, ALI; GRIFFIN, LEIGH
To: RED HAT, INC.
Reel/Frame 065366/0957 →