IP Library Granted Patent US 11,126,418
Granted Patent B2
US 11,126,418 · App. 13/649,970 · Granted Sep 21, 2021

Efficient shared image deployment

Inventor: Simon Hunt (Naples, FL)
Assignee: McAfee, LLC
G06F8/63G06F8/61
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,126,418
App. No.
13/649,970
Granted
Sep 21, 2021
Kind
B2
Abstract

Technologies for distribution of a shared image include determining results of a first hash operation applied to a plurality of elements of an image of a software installation, determining results of the first hash operation applied to the plurality of contents of a client, comparing results of the first hash operation applied to the plurality of elements of the image with the results of the first hash operation applied to the plurality of contents of the client, determining that one or more of the plurality of elements of the image are unavailable on the client based on the comparison of the results of the first hash operation applied to the plurality of elements of the image with the results of the first hash operation applied to the plurality of contents of the client, and causing the transmission of the elements to the client.

Claims (66)

1. A method comprising:

distributing at least a portion of a shared image of a software installation to a client, wherein the distributing comprises:

determining a plurality of files needed for the software installation;

determining, by a hardware processor, first results of a first hash operation applied to the plurality of files needed for the software installation;

recording in a hash table for the shared image of the software installation the first results;

determining, by the hardware processor, third results of the first hash operation applied to a plurality of files of the client;

comparing, by the hardware processor, the first results of the first hash operation applied to the plurality of files needed for the software installation, as recorded in the hash table, with the third results of the first hash operation applied to the plurality of files of the client;

in response to one of the first results of the first hash operation as applied to a first file of the plurality of files needed for the software installation matching one of the third results of the first hash operation as applied to the first file of the plurality of files of the client:

determining, by the hardware processor, a second result of a second hash operation applied to the first file of the plurality of files needed for the software installation, wherein the manner in which the second hash operation is applied is different from the manner in which the first hash operation is applied;

determining, by the hardware processor, a fourth result of the second hash operation applied to the first file of the plurality of files of the client;

comparing, by the hardware processor, the second result of the second hash operation with the fourth result of the second hash operation; and

in response to the second result of the second hash operation matching the fourth result of the second hash operation, determining that the first file of the plurality of files needed for the software installation is available on the client

determining, by the hardware processor and based at least in part on the comparison of the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client, that one or more of the plurality of files needed for the software installation are unavailable on the client; and

causing, by the hardware processor, transmission of the files needed for the software installation that are determined to be unavailable on the client to the client.

2. The method of claim 1 , wherein the plurality of files needed for the software installation and the plurality of files of the client are determined according to clusters.

3. The method of claim 1 , wherein comparing the first results of the first hash operation applied to the plurality of files needed for the software installation of software with the third results of the first hash operation applied to the plurality of files of the client comprises:

obtaining the first results of the first hash operation from the hash table for the shared image.

4. The method of claim 1 , wherein the distributing further comprises:

determining, by the hardware processor and based on the comparison of the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client, that at least one of the plurality of files needed for the software installation are available on the client;

determining, by the hardware processor, a location of each of the at least one of the plurality of files needed for the software installation that are determined to be available on the client; and

causing a reconstruction of the shared image as a local image on the client using the the plurality of files needed for the software installation that are transmitted and the at least one of the plurality of files needed for the software installation that are determined to be available on the client,

wherein causing the reconstruction includes causing the at least one of the plurality of files needed for the software installation that are determined to be available on the client to be copied to the local image,

wherein the at least one of the plurality of files needed for the software installation that are determined to be available on the client are omitted from the the plurality of files needed for the software installation that are transmitted.

5. At least one non-transitory computer-readable medium comprising one or more instructions that when executed on a hardware processor configure the hardware processor to:

distribute at least a portion of a shared image of a software installation to a client, wherein the distributing comprises:

determining a plurality of files needed for the software installation;

determining first results of a first hash operation applied to the plurality of files needed for the software installation;

recording in a hash table for the shared image of the software installation the first results;

determining third results of the first hash operation applied to a plurality of files of the client;

comparing the first results of the first hash operation applied to the plurality of files needed for the software installation, as recorded in the hash table, with the third results of the first hash operation applied to the plurality of files of the client;

in response to one of the first results of the first hash operation as applied to a first file of the plurality of files needed for the software installation matching one of the third results of the first hash operation as applied to the first file of the plurality of files of the client:

determining a second result of a second hash operation applied to the first file of the plurality of files needed for the software installation, wherein the manner in which the second hash operation is applied is different from the manner in which the first hash operation is applied;

determining a fourth result of the second hash operation applied to the first file of the plurality of files of the client;

comparing the second result of the second hash operation with the fourth result of the second hash operation; and

in response to the second result of the second hash operation matching the fourth result of the second hash operation, determining that the first file of the plurality of files needed for the software installation is available on the client;

determining, based at least in part on the comparison of the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client, that one or more of the plurality of files needed for the software installation are unavailable on the client; and

causing transmission of the files needed for the software installation that are determined to be unavailable on the client to the client.

6. The medium of claim 5 , wherein the plurality of files needed for the software installation and the plurality of files of the client are determined according to clusters.

7. The medium of claim 5 , wherein comparing the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client comprises:

obtaining the first results of the first hash operation from the hash table for the shared image.

8. The medium of claim 5 , wherein the distributing further comprises:

determining, based on the comparison of the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client, that at least one of the plurality of files needed for the software installation are available on the client;

determining a location of each of the at least one of the plurality of files needed for the software installation that are determined to be available on the client; and

causing a reconstruction of the shared image as a local image on the client using the the plurality of files needed for the software installation that are transmitted and the at least one of the plurality of files needed for the software installation that are determined to be available on the client, wherein causing the reconstruction includes causing the at least one of the plurality of files needed for the software installation that are determined to be available on the client to be copied to the local image, wherein the at least one of the plurality of files needed for the software installation that are determined to be available on the client are omitted from the the plurality of files needed for the software installation that are transmitted.

9. A system, comprising:

a memory; and

a hardware processor that is coupled to the memory and that is configured to:

distribute at least a portion of a shared image of a software installation to a client, wherein the distributing comprises:

determining a plurality of files needed for the software installation;

determining first results of a first hash operation applied to the plurality of files needed for the software installation;

recording in a hash table for the shared image of the software installation the first results;

determining third results of the first hash operation applied to a plurality of files of the client;

comparing the first results of the first hash operation applied to the plurality of files needed for the software installation, as recorded in the hash table, with the third results of the first hash operation applied to the plurality of files of the client;

in response to one of the first results of the first hash operation as applied to a first file of the plurality of files needed for the software installation matching one of the third results of the first hash operation as applied to the first file of the plurality of files of the client:

determining a second result of a second hash operation applied to the first file of the plurality of files needed for the software installation, wherein the manner in which the second hash operation is applied is different from the manner in which the first hash operation is applied;

determining a fourth result of the second hash operation applied to the first file of the plurality of files of the client comparing the second result of the second hash operation with the fourth result of the second hash operation; and

in response to the second result of the second hash operation matching the fourth result of the second hash operation, determining that the first file of the plurality of files needed for the software installation is available on the client;

determining, based at least in part on the comparison of the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client, that one or more of the plurality of files needed for the software installation are unavailable on the client; and

causing transmission of the files needed for the software installation that are determined to be unavailable on the client to the client.

10. The system of claim 9 , wherein the plurality of files needed for the software installation and the plurality of files of the client are determined according to clusters.

11. The system of claim 9 , wherein comparing the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client comprising:

obtaining the first results of the first hash operation from the hash table for the shared image.

12. The system of claim 9 , wherein the distributing further comprises:

determining, based on the comparison of the first results of the first hash operation applied to the plurality of files needed for the software installation with the third results of the first hash operation applied to the plurality of files of the client, that at least one of the plurality of files needed for the software installation are available on the client;

determining a location each of the at least one of the plurality of files needed for the software installation that are determined to be available on the client; and

causing a reconstruction of the shared image as a local image on the client using the files needed for the software installation that are transmitted and the at least one of the plurality of files needed for the software installation that are determined to be available on the client, wherein causing the reconstruction includes causing the at least one of the plurality of files needed for the software installation that are determined to be available on the client to be copied to the local image, wherein the at least one of the plurality of files needed for the software installation that are determined to be available on the client are omitted from the files needed for the software installation that are transmitted.

Assignments (10)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE PATENT TITLES AND REMOVE DUPLICATES IN THE SCHEDULE PREVIOUSLY RECORDED AT REEL: 059354 FRAME: 0335. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Jun 23, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 060792/0307 →
SECURITY INTEREST Recorded Mar 3, 2022
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A., AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 059354/0335 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045056/0676 Recorded Mar 2, 2022
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 059354/0213 →
RELEASE OF INTELLECTUAL PROPERTY COLLATERAL - REEL/FRAME 045055/0786 Recorded Oct 26, 2020
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MCAFEE, LLC
Reel/Frame 054238/0001 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045056 FRAME 0676. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 054206/0593 →
CORRECTIVE ASSIGNMENT TO CORRECT THE REMOVE PATENT 6336186 PREVIOUSLY RECORDED ON REEL 045055 FRAME 786. ASSIGNOR(S) HEREBY CONFIRMS THE SECURITY INTEREST. Recorded Oct 22, 2020
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 055854/0047 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: MORGAN STANLEY SENIOR FUNDING, INC.
Reel/Frame 045056/0676 →
SECURITY INTEREST Recorded Jan 12, 2018
From: MCAFEE, LLC
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 045055/0786 →
CHANGE OF NAME AND ENTITY CONVERSION Recorded Aug 24, 2017
From: MCAFEE, INC.
To: MCAFEE, LLC
Reel/Frame 043665/0918 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2012
From: HUNT, SIMON
To: MCAFEE, INC.
Reel/Frame 029115/0555 →