IP Library Granted Patent US 11,748,086
Granted Patent B2
US 11,748,086 · App. 17/155,197 · Granted Sep 5, 2023

Automated software upgrade download control based on device issue analysis

Inventors: Parminder Singh Sethi (Ludhiana, IN); Aarsi Kumar (Bengaluru, IN); Kanika Kapish (Muzaffarnagar, IN)
Assignee: Dell Products L.P.
G06F8/65G06F11/368H04L41/082
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,748,086
App. No.
17/155,197
Granted
Sep 5, 2023
Kind
B2
Abstract

An apparatus comprises a processing device configured to detect that a given software upgrade is available for a given computing device, to identify other computing devices on which the given software upgrade has been installed that exhibit at least a threshold level of similarity to the given computing device, and to determine whether any issues were encountered on the other computing devices as a result of the given software upgrade. The processing device is also configured to generate a recommendation as to whether to initiate download of the given software upgrade on the given computing device based at least in part on whether any issues were encountered on the other computing devices as a result of the given software upgrade, and to initiate download of the given software upgrade on the given computing device based at least in part on the generated recommendation.

Claims (84)

1. A method comprising:

detecting that a given software upgrade is available for a given computing device;

identifying one or more other computing devices on which the given software upgrade has been installed that exhibit at least a threshold level of similarity to the given computing device;

determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade;

generating a recommendation as to whether to initiate download of the given software upgrade on the given computing device based at least in part on whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade; and

initiating download of the given software upgrade on the given computing device based at least in part on the generated recommendation;

wherein generating the recommendation as to whether to initiate download of the given software upgrade on the given computing device and initiating download of the given software upgrade based at least in part on the generated recommendation comprise:

identifying two or more types of issues encountered on the one or more other computing devices as a result of the given software upgrade;

generating one or more validation tests based at least in part on one or more issues of a first one of the two or more issue types encountered on the one or more other computing devices as a result of the given software upgrade, wherein generating a given one of the one or more validation tests comprises determining a change in resource usage by at least one of the one or more other computing devices as a result of installation of the given software upgrade on said at least one other computing device;

generating one or more warnings based at least in part on one or more issues of a second one of the two or more issue types encountered on the one or more other computing devices as a result of the given software upgrade;

running the one or more validation tests on the given computing device, wherein running the given validation test comprises determining whether available resources of the given computing device are able to accommodate the determined change in resource usage associated with installation of the given software upgrade on said at least one other computing device; and

determining whether to automatically initiate download of the given software upgrade on the given computing device based at least in part on results of the one or more validation tests run on the given computing device and one or more indicators relating to the one or more warnings, the results of the one or more validation tests run on the given computing device characterizing whether the given software upgrade will result in the given computing device experiencing at least one of the one or more issues encountered on the one or more other computing devices as a result of the given software upgrade; and

wherein the method is performed by at least one processing device comprising a processor coupled to a memory.

2. The method of claim 1 wherein determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade comprises utilizing a clustering algorithm to generate clusters of issue types for the given software upgrade based on a set of clustering factors, the set of clustering factors comprising:

alerts raised for issues encountered on respective ones of the one or more other computing devices, the alerts being associated with at least one of issues encountered due to installation of the given software upgrade and issues encountered following successful installation of the given software upgrade;

telemetry data collected from the one or more other computing devices at least one of prior to installation of the given software upgrade and following successful installation of the given software upgrade; and

information relating to one or more other software upgrades that caused issues on the one or more other computing devices.

3. The method of claim 2 wherein the clusters of issue types for the given software upgrade comprise a first cluster for issues associated with failure installing the given software upgrade, a second cluster for issues associated with performance impacts following installation of the given software upgrade, and a third cluster for issues associated with system failure following installation of the given software upgrade.

4. An apparatus comprising:

at least one processing device comprising a processor coupled to a memory;

the at least one processing device being configured to perform steps of:

detecting that a given software upgrade is available for a given computing device;

identifying one or more other computing devices on which the given software upgrade has been installed that exhibit at least a threshold level of similarity to the given computing device;

determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade;

generating a recommendation as to whether to initiate download of the given software upgrade on the given computing device based at least in part on whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade; and

initiating download of the given software upgrade on the given computing device based at least in part on the generated recommendation;

wherein generating the recommendation as to whether to initiate download of the given software upgrade on the given computing device and initiating download of the given software upgrade based at least in part on the generated recommendation comprise:

identifying two or more types of issues encountered on the one or more other computing devices as a result of the given software upgrade;

generating one or more validation tests based at least in part on one or more issues of a first one of the two or more issue types encountered on the one or more other computing devices as a result of the given software upgrade, wherein generating a given one of the one or more validation tests comprises determining a change in resource usage by at least one of the one or more other computing devices as a result of installation of the given software upgrade on said at least one other computing device;

generating one or more warnings based at least in part on one or more issues of a second one of the two or more issue types encountered on the one or more other computing devices as a result of the given software upgrade;

running the one or more validation tests on the given computing device, wherein running the given validation test comprises determining whether available resources of the given computing device are able to accommodate the determined change in resource usage associated with installation of the given software upgrade on said at least one other computing device; and

determining whether to automatically initiate download of the given software upgrade on the given computing device based at least in part on results of the one or more validation tests run on the given computing device and one or more indicators relating to the one or more warnings, the results of the one or more validation tests run on the given computing device characterizing whether the given software upgrade will result in the given computing device experiencing at least one of the one or more issues encountered on the one or more other computing devices as a result of the given software upgrade.

5. The apparatus of claim 4 wherein identifying one or more other computing devices on which the given software upgrade has been installed that exhibit at least the threshold level of similarity to the given computing device comprises:

obtaining telemetry data from a plurality of computing devices including the given computing device and the one or more other computing devices, the telemetry data characterizing at least one of hardware and software configurations of the plurality of computing devices; and

selecting a subset of the plurality of computing devices as the one or more other computing devices exhibiting at least the threshold level of similarity to the given computing device based at least in part on a comparison of at least one of the hardware and software configuration of the given computing device and the hardware and software configurations of the one or more other computing devices.

6. The apparatus of claim 5 wherein the hardware configurations of the plurality of computing devices comprise at least one of:

manufacturer and model number identifiers of the plurality of computing devices;

manufacturer and model number identifiers of one or more hardware components of the plurality of computing devices; and

state of the one or more hardware components of the plurality of computing devices.

7. The apparatus of claim 5 wherein the software configurations of the plurality of computing devices comprise at least one of:

software installed on the plurality of computing devices;

versions of the software installed on the plurality of computing devices;

software running on the plurality of computing devices when one or more issues were encountered.

8. The apparatus of claim 4 wherein determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade comprises:

determining whether installation of the given software upgrade failed on any of the one or more other computing devices; and

determining whether, following successful installation of the given software upgrade, any of the one or more other computing devices experienced performance impacts.

9. The apparatus of claim 4 wherein determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade comprises utilizing a clustering algorithm to generate clusters of issue types for the given software upgrade based on a set of clustering factors.

10. The apparatus of claim 9 wherein the clustering algorithm comprises a density based clustering algorithm.

11. The apparatus of claim 9 wherein the set of clustering factors comprises:

alerts raised for issues encountered on respective ones of the one or more other computing devices, the alerts being associated with at least one of issues encountered due to installation of the given software upgrade and issues encountered following successful installation of the given software upgrade;

telemetry data collected from the one or more other computing devices at least one of prior to installation of the given software upgrade and following successful installation of the given software upgrade; and

information relating to one or more other software upgrades that caused issues on the one or more other computing devices.

12. The apparatus of claim 9 wherein the clusters of issue types for the given software upgrade comprise a first cluster for issues associated with failure installing the given software upgrade, a second cluster for issues associated with performance impacts following installation of the given software upgrade, and a third cluster for issues associated with system failure following installation of the given software upgrade.

13. The apparatus of claim 9 wherein determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade further comprises determining whether the one or more other computing devices exhibiting at least the threshold level of similarity to the given computing device are matched with any of the generated clusters of issue types for the given software upgrade.

14. The apparatus of claim 13 wherein, responsive to determining that the one or more other computing devices exhibiting at least the threshold level of similarity to the given computing device are matched with a given one of the generated clusters of issue types for the given software upgrade, identifying root causes for the issues associated with the given generated cluster.

15. The apparatus of claim 14 wherein generating the recommendation as to whether to initiate download of the given software upgrade on the given computing device and initiating download of the given software upgrade on the given computing device based at least in part on the generated recommendation comprise:

converting the identified root causes to the one or more validation tests;

responsive to the one or more validation tests passing on the given computing device, initiating download of the given software upgrade on the given computing device automatically;

responsive to at least one of the one or more validation tests failing on the given computing device, pushing one or more additional warnings to the given computing device and initiating download of the given software upgrade on the given computing device responsive to acceptance of the one or more additional warnings.

16. The apparatus of claim 14 wherein generating the recommendation as to whether to initiate download of the given software upgrade on the given computing device and initiating download of the given software upgrade on the given computing device based at least in part on the generated recommendation comprise:

converting the identified root causes to the one or more warnings;

pushing the one or more warnings to the given computing device; and

initiating download of the given software upgrade on the given computing device responsive to acceptance of the one or more warnings.

17. The apparatus of claim 4 wherein generating the recommendation as to whether to initiate download of the given software upgrade on the given computing device and initiating download of the given software upgrade on the given computing device based at least in part on the generated recommendation comprise:

determining a probability that the given computing device will encounter one or more issues due to installation of the given software upgrade based at least in part on whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade;

responsive to the determined probability that the given computing device will encounter one or more issues due to installation of the given software upgrade being below a designated threshold probability, initiating download of the given software upgrade on the given computing device automatically; and

responsive to the determined probability that the given computing device will encounter one or more issues due to installation of the given software upgrade being at or above the designated threshold probability, pushing the one or more warnings to the given computing device and initiating download of the given software upgrade on the given computing device responsive to acceptance of the one or more warnings.

18. A computer program product comprising a non-transitory processor-readable storage medium having stored therein program code of one or more software programs, wherein the program code when executed by at least one processing device causes the at least one processing device to perform steps of:

detecting that a given software upgrade is available for a given computing device;

identifying one or more other computing devices on which the given software upgrade has been installed that exhibit at least a threshold level of similarity to the given computing device;

determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade;

generating a recommendation as to whether to initiate download of the given software upgrade on the given computing device based at least in part on whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade; and

initiating download of the given software upgrade on the given computing device based at least in part on the generated recommendation;

wherein generating the recommendation as to whether to initiate download of the given software upgrade on the given computing device and initiating download of the given software upgrade based at least in part on the generated recommendation comprise:

identifying two or more types of issues encountered on the one or more other computing devices as a result of the given software upgrade;

generating one or more validation tests based at least in part on one or more issues of a first one of the two or more issue types encountered on the one or more other computing devices as a result of the given software upgrade, wherein generating a given one of the one or more validation tests comprises determining a change in resource usage by at least one of the one or more other computing devices as a result of installation of the given software upgrade on said at least one other computing device;

generating one or more warnings based at least in part on one or more issues of a second one of the two or more issue types encountered on the one or more other computing devices as a result of the given software upgrade;

running the one or more validation tests on the given computing device, wherein running the given validation test comprises determining whether available resources of the given computing device are able to accommodate the determined change in resource usage associated with installation of the given software upgrade on said at least one other computing device; and

determining whether to automatically initiate download of the given software upgrade on the given computing device based at least in part on results of the one or more validation tests run on the given computing device and one or more indicators relating to the one or more warnings, the results of the one or more validation tests run on the given computing device characterizing whether the given software upgrade will result in the given computing device experiencing at least one of the one or more issues encountered on the one or more other computing devices as a result of the given software upgrade.

19. The computer program product of claim 18 wherein determining whether any issues were encountered on the one or more other computing devices as a result of the given software upgrade comprises utilizing a clustering algorithm to generate clusters of issue types for the given software upgrade based on a set of clustering factors, the set of clustering factors comprising:

alerts raised for issues encountered on respective ones of the one or more other computing devices, the alerts being associated with at least one of issues encountered due to installation of the given software upgrade and issues encountered following successful installation of the given software upgrade;

telemetry data collected from the one or more other computing devices at least one of prior to installation of the given software upgrade and following successful installation of the given software upgrade; and

information relating to one or more other software upgrades that caused issues on the one or more other computing devices.

20. The computer program product of claim 19 wherein the clusters of issue types for the given software upgrade comprise a first cluster for issues associated with failure installing the given software upgrade, a second cluster for issues associated with performance impacts following installation of the given software upgrade, and a third cluster for issues associated with system failure following installation of the given software upgrade.

Assignments (9)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0342) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0460 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (055479/0051) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0663 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (056136/0752) Recorded Jun 10, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
Reel/Frame 062021/0771 →
RELEASE OF SECURITY INTEREST AT REEL 055408 FRAME 0697 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC IP HOLDING COMPANY LLC
Reel/Frame 058001/0553 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 056136/0752 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0051 →
SECURITY INTEREST Recorded Mar 3, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
Reel/Frame 055479/0342 →
SECURITY AGREEMENT Recorded Feb 25, 2021
From: EMC IP HOLDING COMPANY LLC; DELL PRODUCTS L.P.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 055408/0697 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 22, 2021
From: SETHI, PARMINDER SINGH; KUMAR, AARSI; KAPISH, KANIKA
To: DELL PRODUCTS L.P.
Reel/Frame 054994/0342 →