IP Library Granted Patent US 10,732,957
Granted Patent B2
US 10,732,957 · App. 16/048,729 · Granted Aug 4, 2020

Determining a stability index associated with a software update

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 10,732,957
App. No.
16/048,729
Granted
Aug 4, 2020
Kind
B2
Abstract

In some examples, a server may receive telemetry data from a computing device. The server may determine based at least in part on the telemetry data, (1) a device (e.g., hardware and software) configuration associated with the computing device and (2) one or more events (e.g., an installation log, a memory dump, or the like) associated with installing a software package on the computing device. Based at least in part on the one or more events. the server may determine a stability index associated with the software package and associate the stability index with the device configuration. The stability index may indicate a probability of errors not occurring after the software package is installed. After determining that the stability index satisfies a predetermined threshold, the server may provide the software package and the associated stability index for download to one or more additional computing devices.

Claims (104)

1. A method comprising:

receiving, by a server, telemetry data from a computing device;

determining, by the server and based at least in part on the telemetry data, a device configuration associated with the computing device;

determining, by the server and based at least in part on the telemetry data, one or more events associated with installing a software package on the computing device;

determining, by the server executing a machine learning module that is trained using training data that includes success rates of the software package determined during testing and verification of the software package, a stability index associated with the software package based at least in part on the one or more events, wherein the stability index indicates a probability that an error does not occur after the software package is installed on one or more additional computing devices having a similar device configuration to the device configuration associated with the computing device, the probability determined based at least in part on a risk score that is scaled from a low risk to a high risk that installation of the software package causes the error;

associating, by the server, the stability index with the device configuration;

determining, by the server, that the stability index satisfies a predetermined threshold; and

providing, by the server, the software package and the stability index for download to the one or more additional computing devices.

2. The method of claim 1 , wherein determining, by the server and based at least in part on the telemetry data, the device configuration associated with the computing device comprises:

determining, based at least in part on the telemetry data, an identifier associated with the computing device, the identifier comprising one of a service tag or a serial number; and

determining, based at least in part on the identifier, a hardware configuration associated with the computing device, the hardware configuration comprising: a processor identifier, a processor speed, a graphics processor identifier, an amount of random access memory, a type of a hard drive, and a capacity of the hard drive.

3. The method of claim 1 , wherein the stability index is determined based at least in part on: a type of each event of the one or more events, a weight assigned to each type of event, a number of events that have occurred, a number of times the software package was installed, and a scaling factor.

4. The method of claim 1 , wherein the one or more events associated with installing the software package on the computing device further comprise at least one of:

an installation log;

a memory dump;

a crash associated with the software package;

an involuntary restart of an operating system installed on the computing device;

a stop error; or

an indication that a user of the computing device initiated contact with a support staff member associated with a manufacturer of the computing device.

5. The method of claim 1 , wherein the risk score is determined based on a plurality of predictor variables comprising at least two of: a size of the software package, an average time to install the software package, a reboot indicator indicating whether installation of the software package requires a reboot, and an upgrade indicator indicating whether the software package is a first install or an upgrade to a previous install.

6. The method of claim 1 , further comprising:

receiving second telemetry data from a second computing device;

determining that the device configuration associated with the computing device is associated with the second computing device;

determining, from the second telemetry data, one or more additional events associated with installing the software package on the second computing device;

recalculating the stability index associated with the software package based at least in part on the one or more additional events to create an updated stability index;

associating the updated stability index with the device configuration;

determining that the updated stability index fails to satisfy the predetermined threshold; and

stopping providing the software package for download.

7. The method of claim 1 , wherein the software package comprises at least one of:

a driver associated with a hardware component of the computing device;

a firmware associated with a hardware component of the computing device;

an update to a software application that was previously installed on the computing device;

a new software application to be installed on the computing device; or

a basic input-output system (BIOS) associated with the computing device.

8. A server comprising:

one or more processors; and

one or more non-transitory computer readable media storing instructions executable by the one or more processors to perform operations comprising:

receiving telemetry data from a computing device;

determining, based at least in part on the telemetry data, a device configuration associated with the computing device;

determining, based at least in part on the telemetry data, one or more events associated with installing a software package on the computing device;

determining, using a machine learning module that is trained using training data that includes success rates of the software package determined during testing and verification of the software package, a stability index associated with the software package based at least in part on the one or more events, wherein the stability index indicates a probability that an error does not occur after the software package is installed on one or more additional computing devices having a similar device configuration to the device configuration associated with the computing device, the probability determined based at least in part on a risk score that is scaled from a low risk to a high risk that installation of the software package causes the error;

associating the stability index with the device configuration;

determining that the stability index satisfies a predetermined threshold; and

providing the software package and the stability index for download to the one or more additional computing devices.

9. The server of claim 8 , wherein determining, based at least in part on the telemetry data, the device configuration associated with the computing device comprises:

determining, based at least in part on the telemetry data, an identifier associated with the computing device, the identifier comprising one of a service tag or a serial number; and

determining, based at least in part on the identifier, a hardware configuration associated with the computing device, the hardware configuration comprising: a processor identifier, a processor speed, a graphics processor identifier, an amount of random access memory, a type of a hard drive, and a capacity of the hard drive.

10. The server of claim 8 , wherein the software package comprises at least one of:

a driver associated with a hardware component of the computing device;

a firmware associated with a hardware component of the computing device;

an update to a software application that was previously installed on the computing device;

a new software application to be installed on the computing device; or

a basic input-output system (BIOS) associated with the computing device.

11. The server of claim 8 , wherein the one or more events associated with installing the software package on the computing device further comprise at least one of:

an installation log;

a memory dump;

a crash associated with the software package;

an involuntary restart of an operating system installed on the computing device;

a stop error; or

an indication that a user of the computing device initiated contact with a support staff member associated with a manufacturer of the computing device.

12. The server of claim 8 , wherein the stability index is determined based at least in part on: a type of each event of the one or more events, a weight assigned to each type of event, a number of events that have occurred, a number of times the software package was installed, and a scaling factor.

13. The server of claim 8 , further comprising:

receiving second telemetry data from a second computing device;

determining that the device configuration associated with the computing device is associated with the second computing device;

determining, from the second telemetry data, one or more additional events associated with installing the software package on the second computing device;

recalculating the stability index associated with the software package based at least in part on the one or more additional events to create an updated stability index;

associating the updated stability index with the device configuration;

determining that the updated stability index fails to satisfy the predetermined threshold; and

stopping providing the software package for download.

14. One or more non-transitory computer readable media storing instructions executable by one or more processors to perform operations comprising:

receiving telemetry data from a computing device;

determining, based at least in part on the telemetry data, a device configuration associated with the computing device;

determining, based at least in part on the telemetry data, one or more events associated with installing a software package on the computing device;

determining, using a machine learning module that is trained using training data that includes success rates of the software package determined during testing and verification of the software package, a stability index associated with the software package, based at least in part on the one or more events, wherein the stability index indicates a probability that an error does not occur after the software package is installed on one or more additional computing devices having a similar device configuration to the device configuration associated with the computing device, the probability determined based at least in part on a risk score that is scaled from a low risk to a high risk that installation of the software package causes the error;

associating the stability index with the device configuration;

determining, that the stability index satisfies a predetermined threshold; and

providing the software package and the stability index for download to the one or more additional computing devices.

15. The one or more non-transitory computer readable media of claim 14 , wherein determining, based at least in part on the telemetry data, the device configuration associated with the computing device comprises:

determining, based at least in part on the telemetry data, an identifier associated with the computing device, the identifier comprising one of a service tag or a serial number; and

determining, based at least in part on the identifier, a hardware configuration associated with the computing device, the hardware configuration comprising: a processor identifier, a processor speed, a graphics processor identifier, an amount of random access memory, a type of a hard drive, and a capacity of the hard drive.

16. The one or more non-transitory computer readable media of claim 14 , wherein the stability index is determined based at least in part on: a type of each event of the one or more events, a weight assigned to each type of event, a number of events that have occurred, a number of times the software package was installed, and a scaling factor.

17. The one or more non-transitory computer readable media of claim 16 , wherein the one or more events associated with installing the software package on the computing device comprise at least one of:

an installation log;

a memory dump;

a crash associated with the software package;

an involuntary restart of an operating system installed on the computing device;

a stop error; or

an indication that a user of the computing device initiated contact with a support staff member associated with a manufacturer of the computing device.

18. The one or more non-transitory computer readable media of claim 14 , wherein the risk score is determined based on a plurality of predictor variables comprising at least two of: a size of the software package, an average time to install the software package, a reboot indicator indicating whether installation of the software package requires a reboot, and an upgrade indicator indicating whether the software package is a first install or an upgrade to a previous install.

19. The one or more non-transitory computer readable media of claim 14 , further comprising:

receiving second telemetry data from a second computing device;

determining that the device configuration associated with the computing device is associated with the second computing device;

determining, from the second telemetry data, one or more additional events associated with installing the software package on the second computing device;

recalculating the stability index associated with the software package based at least in part on the one or more additional events to create an updated stability index;

associating the updated stability index with the device configuration;

determining that the updated stability index fails to satisfy the predetermined threshold; and

stopping providing the software package for download.

20. The one or more non-transitory computer readable media of claim 14 , wherein:

the software package comprises at least one of:

a driver associated with a hardware component of the computing device;

a firmware associated with a hardware component of the computing device;

an update to a software application that was previously installed on the computing device;

a new software application to be installed on the computing device; or

a basic input-output system (BIOS) associated with the computing device.

Assignments (8)
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (053546/0001) Recorded Jun 23, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL MARKETING L.P. (ON BEHALF OF ITSELF AND AS SUCCESSOR-IN-INTEREST TO CREDANT TECHNOLOGIES, INC.); DELL INTERNATIONAL L.L.C.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; DELL MARKETING CORPORATION (SUCCESSOR-IN-INTEREST TO FORCE10 NETWORKS, INC. AND WYSE TECHNOLOGY L.L.C.); EMC IP HOLDING COMPANY LLC
Reel/Frame 071642/0001 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (047648/0422) Recorded May 20, 2022
From: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS NOTES COLLATERAL AGENT
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 060160/0862 →
RELEASE OF SECURITY INTEREST AT REEL 047648 FRAME 0346 Recorded Nov 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
Reel/Frame 058298/0510 →
SECURITY AGREEMENT Recorded Apr 22, 2020
From: CREDANT TECHNOLOGIES INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 053546/0001 →
SECURITY AGREEMENT Recorded Mar 21, 2019
From: CREDANT TECHNOLOGIES, INC.; DELL INTERNATIONAL L.L.C.; DELL MARKETING L.P.; DELL PRODUCTS L.P.; DELL USA L.P.; EMC CORPORATION; FORCE10 NETWORKS, INC.; WYSE TECHNOLOGY L.L.C.; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A.
Reel/Frame 049452/0223 →
PATENT SECURITY AGREEMENT (CREDIT) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 047648/0346 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 12, 2018
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: THE BANK OF NEW YORK MELLON TRUST COMPANY, N.A., AS COLLATERAL AGENT
Reel/Frame 047648/0422 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 30, 2018
From: DATTATRI, MAHESHWAR; VICHARE, NIKHIL M.
To: DELL PRODUCTS L. P.
Reel/Frame 046658/0883 →