IP Library Granted Patent US 11,366,692
Granted Patent B2
US 11,366,692 · App. 16/663,896 · Granted Jun 21, 2022

Task execution based on whether task completion time exceeds execution window of device to which task has been assigned

Inventors: Krishna Mahadevan Ramakrishnan (Bangalore, IN); Venkatesh Ramteke (Bangalore, IN); Shiva Prakash Sm (Bangalore, IN)
Assignee: MICRO FOCUS LLC
G06F9/4887G06F9/5038G06F9/5072G06N20/00
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 11,366,692
App. No.
16/663,896
Granted
Jun 21, 2022
Kind
B2
Abstract

Tasks of a group are respectively assigned to devices for execution. For each task, a completion time for a task is determined based on an associated cluster of the device to which the task has been assigned for execution is determined. If the completion time of a task exceeds an execution window of the device to which the task has been assigned, the task is removed from the group. The tasks remaining in the group are executed on the devices to which the tasks have been assigned for execution.

Claims (56)

1. A non-transitory computer-readable data storage medium storing program code executable by a processor to perform processing comprising:

for each of a group of tasks respectively assigned to a plurality of devices for execution such that each task is assigned to a respective device for execution:

determining an associated cluster of the device to which the task has been assigned for execution, the associated cluster including different devices on which the task has been historically executed and that have been clustered into the associated cluster according to a device attribute;

determining a completion time for the task, based on the associated cluster of the device to which the task has been assigned for execution;

determining whether the completion time exceeds an execution window of the device to which the task has been assigned for execution;

in response to determining that the completion time exceeds the execution window, removing the task from the group; and

executing the tasks remaining in the group on the devices to which the tasks have been assigned for execution.

2. The non-transitory computer-readable data storage medium of claim 1 , wherein determining the completion time for the task, based on the associated cluster of the device to which the task has been assigned for execution, comprises:

determining a baseline completion time for the task, the baseline completion time corresponding to a historical completion time of the task across the cluster; and

setting the completion time for the task to the baseline completion time.

3. The non-transitory computer-readable data storage medium of claim 2 , wherein determining the completion time for the task, based on the associated cluster of the device to which the task has been assigned for execution, further comprises:

determining whether a task start time of the task occurs within a temporal period associated with an increased historical completion time of the task across the cluster; and

in response to determining that the task start time occurs within the temporal period, increasing the completion time for the task in correspondence with the increased historical completion time.

4. The non-transitory computer-readable data storage medium of claim 1 , wherein the tasks of the group have a priority, and the processing further comprises:

in response to determining that the completion time exceeds the execution window, adding a lower-priority task to the group.

5. The non-transitory computer-readable data storage medium of claim 1 , wherein the tasks of the group have a task priority, and the device to which each task is assigned for execution has a device priority,

and wherein the tasks are ordered within the group by the device priorities of the devices to which the tasks have been assigned for execution.

6. The non-transitory computer-readable data storage medium of claim 5 , wherein the group of tasks is a first group of first tasks having a first priority, and the processing further comprises:

in response to determining that the completion time exceeds the execution window, moving a second task from a second group of second tasks to a bottom of the first group,

wherein the second group of second tasks are respectively assigned to the devices for execution and have a second priority lower than the first priority, the second tasks ordered within the second group by the device priorities of the devices to which the second tasks have been assigned for execution.

7. The non-transitory computer-readable data storage medium of claim 1 , wherein the tasks are periodically performed to maintain, monitor, and update the devices, the devices being networking devices.

8. A method comprising:

clustering a plurality of devices over a plurality of clusters by device attributes;

for each cluster and for each of a plurality of task types, determining a baseline completion time for the task type on the cluster from historical execution of tasks of the task type across the devices of the cluster;

determining whether a specified task should be executed on a specified device to which the specified task has been assigned, based on the baseline completion time for a task type of the specified task on the cluster with which the specified device is associated; and

in response to determining that the specified task should be executed, executing the specified task on the specified device.

9. The method of claim 8 , further comprising, for each cluster and for each of a plurality of task types:

identifying a plurality of instances in which completion time of the tasks of the task type across the devices of the cluster was greater than the baseline completion time; and

for each instance, determining an increased historical completion time and an associated temporal period.

10. The method of claim 9 , wherein determining whether the specified task should be executed on the specified device is further based on whether a task start time of the task occurs within the temporal period of any instance for the task type of the specified task and for the cluster with which the specified device is associated.

11. The method of claim 8 , wherein the devices are clustered over the clusters using K-means machine learning.

12. The method of claim 8 , wherein the specified task is part of a group of specified tasks having a priority, and the method further comprises:

in response to determining that the specified task is not to be executed, removing the specified task from the group.

13. The method of claim 12 , the method further comprising:

in response to determining that the specified task is not to be executed, adding a different task having a lower priority to the group.

14. The method of claim 8 , wherein the clusters and the baseline completion times are periodically updated as the tasks are executed over the devices of the clusters.

15. A system comprising:

a memory storing program code; and

a processor to execute the program code to, for each of a plurality of groups of tasks, in order from a highest priority group to a lowest priority group:

for each task:

determine an associated cluster of a device to which the task has been assigned for execution, the associated cluster including different devices on which the task has been historically executed and that have been clustered into the associated cluster according to a device attribute;

determine a completion time for the task, based on the associated cluster of the device to which the task has been assigned for execution;

determine whether the completion time exceeds an execution window of the device to which the task has been assigned for execution;

in response to determining that the completion time exceeds the execution window, remove the task from the group; and

execute the tasks remaining in the group on the devices to which the tasks have been assigned for execution.

16. The system of claim 15 , wherein the processor is to determine the completion time for the task, based on the associated cluster of the device to which the task has been assigned for execution, by:

determining a baseline completion time for the task, the baseline completion time corresponding to a historical completion time of the task across the cluster; and

setting the completion time for the task to the baseline completion time.

17. The system of claim 16 , wherein the processor is to determine the completion time for the task, based on the associated cluster of the device to which the task has been assigned for execution, by further:

determining whether a task start time of the task occurs is associated with an increased historical completion time of the task across the cluster; and

in response to determining that the task start time is associated with the increased historical completion time, increasing the completion time for the task in correspondence with the increased historical completion time.

18. The system of claim 15 , wherein the tasks of the groups have a task priority, with the tasks of the highest priority group having a highest task priority and the tasks of the lowest priority group having a lowest task priority, and wherein the processor is further to:

in response to determining that the completion time exceeds the execution window, adding a task from a next-lower priority group to the group.

19. The system of claim 18 , wherein the device to which each task is assigned for execution has a device priority,

and wherein the tasks of each group are ordered within the group by the device priorities of the devices to which the tasks have been assigned for execution.

20. The system of claim 19 , wherein the task added from the next-lower priority group to the group is a top-most task within the next-lower priority group, and is added to a bottom of the group.

Assignments (5)
RELEASE OF SECURITY INTEREST REEL/FRAME 052294/0522 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062624/0449 →
RELEASE OF SECURITY INTEREST REEL/FRAME 052295/0041 Recorded Feb 2, 2023
From: JPMORGAN CHASE BANK, N.A.
To: MICRO FOCUS LLC; MICRO FOCUS SOFTWARE INC. (F/K/A NOVELL, INC.); NETIQ CORPORATION
Reel/Frame 062625/0754 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052294/0522 →
SECURITY AGREEMENT Recorded Apr 2, 2020
From: MICRO FOCUS LLC; BORLAND SOFTWARE CORPORATION; MICRO FOCUS SOFTWARE INC.; NETIQ CORPORATION; MICRO FOCUS (US), INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 052295/0041 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 25, 2019
From: RAMAKRISHNAN, KRISHNA MAHADEVAN; RAMTEKE, VENKATESH; SM, SHIVA PRAKASH
To: MICRO FOCUS LLC
Reel/Frame 050826/0878 →
Continuity (1)
Related Publication 20210124612A1 · Apr 29, 2021