IP Library Granted Patent US 12663978
Granted Patent B2
US 12663978 · App. 18/344,133 · Granted Jun 23, 2026

Managing updates of device program code in information processing system environment

Inventors: Ramesh Doddaiah (Westborough, MA); Udgith A. Mankad (Shrewsbury, MA); Theodore R. Grevers (Milford, MA); Suresh K. Krishnan (Shrewsbury, MA)
Assignee: Dell Products L.P.
G06F8/65G06F11/3433
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 12663978
App. No.
18/344,133
Granted
Jun 23, 2026
Kind
B2
Abstract

Techniques for program code management are disclosed. For example, a method obtains resource utilization data from a computing network comprising a plurality of computing devices. The method then utilizes a multi-variate time series model representing at least a portion of the resource utilization data to automatically compute at least one time window in which to perform a program code update on at least a subset of the plurality of computing devices.

Claims (36)

1 . An apparatus comprising:

at least one processing platform comprising at least one processor device coupled to at least one memory which stores program instructions that are executed by the at least one processor device to implement a program code update scheduling system which executes on the at least one processing platform in a computing network to perform a process for managing program code updates of a plurality of computing devices operating in the computing network, wherein in performing the process for managing program code updates of the plurality of computing devices, the program code update scheduling system operates to:

perform a trial run of a program code update for a given program code update on multiple computing devices of the plurality of computing devices to learn a time length to perform the given program code update;

collect resource utilization data for different types of resource utilization by the plurality of computing devices operating in the computing network;

utilize a multi-variate time series model representing at least a portion of the different types of resource utilization to analyze at least a portion of the collected resource utilization data and the learned time length to perform the given program code update to automatically compute at least one time window in which to automatically send a program code update to at least a subset of computing devices of the plurality of computing devices; and

automatically send the program code update to the at least a subset of computing devices of the plurality of computing devices to perform the given program code update based at least in part on the automatically computed at least one time window.

2 . The apparatus of claim 1 , wherein:

in performing the trial run of the program code update for the given program code update on the multiple computing devices of the plurality of computing devices, the program code update scheduling system performs the trial run of the program code update on one or more subsets of computing devices of the plurality of computing devices; and

each subset of the one or more subsets of computing devices of the plurality of computing devices is selected based at least in part on one or more of device manufacture, device type, device functionality, and a total number of computing devices operating in the computing network.

3 . The apparatus of claim 1 , wherein the learned time length to perform the given program code update is determined by the program code update scheduling system sampling results of the trial run of the program code update on the multiple computing devices of the plurality of computing devices to determine an average time length to perform the given program code update for the multiple computing devices of the plurality of computing devices.

4 . The apparatus of claim 1 , wherein the collected resource utilization data for the different types of resource utilization comprises data indicative of one or more of inputs/outputs associated with at least a portion of the computing network, a processor utilization associated with at least a portion of the computing network, a disk utilization associated with at least a portion of the computing network, and a memory utilization associated with at least a portion of the computing network.

5 . The apparatus of claim 1 , wherein the multi-variate time series model represents a given type of resource utilization of the different types of resource utilization as a linear function of at least one past value for the given type of resource utilization of the different types of resource utilization and at least one past value of at least one other type of resource utilization of the different types of resource utilization.

6 . The apparatus of claim 1 , wherein the program code update scheduling system further operates to present the automatically computed at least one time window to a user as a recommendation.

7 . The apparatus of claim 1 , wherein the program code update scheduling system further operates to provide the automatically computed at least one time window to an orchestrator associated with the computing network to enable the orchestrator to cause the program code update to be performed on the at least a subset of computing devices of the plurality of computing devices in the automatically computed at least one time window.

8 . The apparatus of claim 1 , wherein the automatically computed at least one time window is a time window determined to be concurrent with a resource utilization for the subset of computing devices of the plurality of computing devices.

9 . The apparatus of claim 1 , wherein the program code update scheduling system further operates to manage a query from a user to determine a status of the program code update with respect to at least one computing device of the plurality of computing devices.

10 . The apparatus of claim 1 , wherein the program code update comprises a firmware update associated with the subset of computing devices of the plurality of computing devices.

11 . The apparatus of claim 1 , wherein the plurality of computing devices comprise a plurality of edge computing devices.

12 . A computer program product comprising a non-transitory processor-readable storage medium having stored therein one or more software programs, wherein, when executed by at least one processing device, causes the at least one processing device to implement a program code update scheduling system which executes on at least one processing platform in a computing network to perform a process for managing program code updates of a plurality of computing devices operating in the computing network, and wherein in performing the process for managing program code updates of the plurality of computing devices, the program code update scheduling system operates to:

perform a trial run of a program code update for a given program code update on multiple computing devices of the plurality of computing devices to learn a time length to perform the given program code update;

collect resource utilization data for different types of resource utilization by the plurality of computing devices operating in the computing network;

utilize a multi-variate time series model representing at least a portion of the different types of resource utilization to analyze at least a portion of the collected resource utilization data and the learned time length to perform the given program code update to automatically compute at least one time window in which to automatically send a program code update to at least a subset of computing devices of the plurality of computing devices; and

automatically send the program code update to the at least a subset of computing devices of the plurality of computing devices to perform the given program code update based at least in part on the automatically computed at least one time window.

13 . The computer program product of claim 12 , wherein the collected resource utilization data for the different types of resource utilization comprises data indicative of one or more of inputs/outputs associated with at least a portion of the computing network, a processor utilization associated with at least a portion of the computing network, a disk utilization associated with at least a portion of the computing network, and a memory utilization associated with at least a portion of the computing network.

14 . The computer program product of claim 12 , wherein the multi-variate time series model represents a given type of resource utilization of the different types of resource utilization as a linear function of at least one past value for the given type of resource utilization of the different types of resource utilization and at least one past value of at least one other type of resource utilization of the different types of resource utilization.

15 . The computer program product of claim 12 , wherein the program code update scheduling system further operates to provide the automatically computed at least one time window to an orchestrator associated with the computing network to enable the orchestrator to cause the program code update to be performed on the at least a subset of computing devices of the plurality of computing devices in the automatically computed at least one time window.

16 . A method comprising:

implementing a program code update scheduling system which executes on at least one processing platform in a computing network to perform a process for managing program code updates of a plurality of computing devices operating in the computing network, wherein performing the process for managing the program code updates of the plurality of computing devices comprises:

performing, by the program code update scheduling system, a trial run of a program code update for a given program code update on multiple computing devices of the plurality of computing devices to learn a time length to perform the given program code update;

collecting, by the program code update scheduling system, resource utilization data for different types of resource utilization by the plurality of computing devices operating in the computing network;

utilizing, by the program code update scheduling system, a multi-variate time series model representing at least a portion of the different types of resource utilization to analyze at least a portion of the collected resource utilization data and the learned time length to perform the given program code update to automatically compute at least one time window in which to automatically send a program code update to at least a subset of computing devices of the plurality of computing devices; and

automatically sending, by the program code update scheduling system, the program code update to the at least a subset of computing devices of the plurality of computing devices to perform the given program code update based at least in part on the automatically computed at least one time window.

17 . The method of claim 16 , wherein the collected resource utilization data for the different types of resource utilization comprises data indicative of one or more of inputs/outputs associated with at least a portion of the computing network, a processor utilization associated with at least a portion of the computing network, a disk utilization associated with at least a portion of the computing network, and a memory utilization associated with at least a portion of the computing network.

18 . The method of claim 16 , wherein the multi-variate time series model represents a given type of resource utilization of the different types of resource utilization as a linear function of at least one past value for the given type of resource utilization of the different types of resource utilization and at least one past value of at least one other type of resource utilization of the different types of resource utilization.

19 . The method of claim 16 , wherein managing the program code updates of the plurality of computing devices further comprises providing the automatically computed at least one time window to an orchestrator associated with the computing network to enable the orchestrator to cause the program code update to be performed on the at least a subset of computing devices of the plurality of computing devices in the automatically computed at least one time window.

20 . The method of claim 16 , wherein the learned time length to perform the given program code update is determined by the program code update scheduling system sampling results of the trial run of the program code update on the multiple computing devices of the plurality of computing devices to determine an average time length to perform the given program code update for the multiple computing devices of the plurality of computing devices.