IP Library Granted Patent US 11,340,883
Granted Patent B2
US 11,340,883 · App. 16/438,301 · Granted May 24, 2022

Installing, updating or reconfiguring an application without disabling a write filter

Inventors: Gokul Thiruchengode Vajravel (Bengaluru, IN); Jyothi Bandakka (Bengaluru, IN)
Assignee: Dell Products L.P.
G06F8/65G06F8/61G06F9/44505G06F12/0875G06F2212/45
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,340,883
App. No.
16/438,301
Granted
May 24, 2022
Kind
B2
Abstract

An application can be installed, updated or reconfigured without disabling a write filter. When a package is to be deployed to a client terminal to install, update or reconfigure an application, an overlay optimizer can be instructed to start a session. During the session, the overlay optimizer can analyze I/O requests to identify any I/O request that pertains to the deployment of the package. The overlay optimizer can then redirect the identified I/O requests to a session overlay that the overlay optimizer has created for the session rather than passing the I/O requests to the write filter. As a result, the artifacts that are affected by the deployment of the package will be stored in the session overlay rather than the write filter's overlay. Once the session is completed, the overlay optimizer can copy the artifacts from the session overlay to the write filter's overlay and commit them.

Claims (52)

1. A method, performed by an overlay optimizer on a client terminal that includes a write filter, for installing, updating or reconfiguring an application without disabling the write filter, the method comprising:

receiving a session start request that indicates that a package is to be deployed on the client terminal to install, update or reconfigure an application, the session start request instructing the overlay optimizer to start a session for deployment of the package, the session start request identifying an expected overly size of the package;

determining an amount of free space available in an overlay of the write filter;

comparing the expected overlay size identified in the session start request to the amount of free space available in the overlay;

when the expected overlay size identified in the session start request exceeds the amount of free space available in the overlay, creating a session overlay in an overlay cache by creating a dummy file in the overlay cache and setting a size of the dummy file to match the expected overlay size identified in the session start request;

during the session, analyzing input/output (I/O) requests to determine whether the I/O requests pertain to the deployment of the package;

for each of a first plurality of I/O requests that are determined to pertain to the deployment of the package, redirecting the I/O request to the overlay cache while not redirecting to the overlay cache a second plurality of I/O requests that are determined to not pertain to the deployment of the package;

after receiving a session stop request, accessing artifacts that have been stored in the overlay cache as a result of redirecting each of the first plurality of I/O requests; and

causing the artifacts to be copied to the overlay and then causing the artifacts to be committed by the write filter.

2. The method of claim 1 , wherein, for at least some of the first plurality of I/O requests, redirecting the I/O request to the overlay cache includes reducing the size of the dummy file by an amount that is based on a size of an artifact that the I/O request will create in the session overlay.

3. The method of claim 1 , further comprising:

in response to the session stop request, ceasing the analysis of the I/O requests.

4. The method of claim 1 , wherein causing the artifacts to be copied to the overlay comprises creating I/O requests that cause the write filter to write the artifacts to the overlay.

5. The method of claim 1 , wherein the first of I/O requests include at least one I/O request that deletes a particular artifact, the method further comprising:

maintaining a delete entry in a log, the delete entry identifying the particular artifact;

after receiving the session stop request, creating an I/O request to cause the particular artifact to be deleted and then committing the delete.

6. The method of claim 1 , wherein the artifacts are accessed, copied to the overlay and then committed immediately in response to the session stop request.

7. The method of claim 1 , wherein the artifacts are accessed, copied to the overlay and then committed at a next reboot of the client terminal.

8. The method of claim 1 , wherein determining whether the I/O requests pertain to the deployment of the package comprises determining whether the I/O requests are associated with an agent.

9. The method of claim 1 , further comprising:

receiving a second session start request that indicates that a second package is to be deployed on the client terminal to install, update or reconfigure an application;

determining that an expected overlay size of the second package is less than an amount of free space available in the overlay;

analyzing I/O requests received after the second session start request to determine whether the I/O requests pertain to deployment of the second package;

for each of a third plurality of I/O requests that are determined to pertain to the deployment of the second package, maintaining a log of artifacts that are targeted by the third plurality of I/O requests;

in response to a second session stop request, employing the log to cause the write filter to commit each of the artifacts.

10. The method of claim 1 , further comprising:

accessing a log to identify the artifacts that have been stored in the overlay cache as a result of redirecting each of the first plurality of I/O requests.

11. One or more computer storage media storing computer executable instructions which when executed on a client terminal that includes a write filter, implement an overlay optimizer that performs a method for installing, updating or reconfiguring an application without disabling the write filter, the method comprising:

receiving a session start request that indicates that a package is to be deployed on the client terminal to install, update or reconfigure an application, the session start request instructing the overlay optimizer to start a session for deployment of the package, the session start request identifying an expected overlay size of the package;

determining an amount of free space available in an overlay of the write filter;

comparing the expected overlay size identified in the session start request to the amount of free space available in the overlay;

when the expected overlay size identified in the session start request exceeds the amount of free space available in the overlay, creating a session overlay in an overlay cache by creating a dummy file in the overlay cache and setting a size of the dummy file to match the expected overlay size identified in the session start request;

during the session, analyzing input/output (I/O) requests to determine whether the I/O requests pertain to the deployment of the package;

for each of a first plurality of I/O requests that are determined to pertain to the deployment of the package, redirecting the I/O request to the overlay cache while not redirecting to the overlay cache a second plurality of I/O requests that are determined to not pertain to the deployment of the package; after receiving a session stop request, accessing artifacts that have been stored in the overlay cache as a result of redirecting each of the first plurality of I/O requests; and causing the artifacts to be copied to the overlay and then causing the artifacts to be committed by the write filter.

12. The computer storage media of claim 11 , wherein, for at least some of the first plurality of I/O requests, redirecting the I/O request to the overlay cache includes reducing the size of the dummy file by an amount that is based on a size of an artifact that the I/O request will create in the session overlay.

13. The computer storage media of claim 11 , wherein the method further comprises:

in response to the session stop request, ceasing the analysis of the I/O requests.

14. The computer storage media of claim 11 , wherein causing the artifacts to be copied to the overlay comprises creating I/O requests that cause the write filter to write the artifacts to the overlay.

15. The computer storage media of claim 11 , wherein the first plurality of I/O requests include at least one I/O request that deletes a particular artifact, the method further comprising:

maintaining a delete entry in a log, the delete entry identifying the particular artifact;

after receiving the session stop request, creating an I/O request to cause the particular artifact to be deleted and then committing the delete.

16. The computer storage media of claim 11 , wherein the artifacts are accessed, copied to the overlay and then committed immediately in response to the session stop request.

17. The computer storage media of claim 11 , wherein the artifacts are accessed, copied to the overlay and then committed at a next reboot of the client terminal.

18. The computer storage media of claim 11 , wherein determining whether the I/O requests pertain to the deployment of the package comprises determining whether the I/O requests are associated with an agent.

19. The computer storage media of claim 11 , wherein the method further comprises:

receiving a second session start request that indicates that a second package is to be deployed on the client terminal to install, update or reconfigure an application;

determining that an expected overlay size of the second package is less than an amount of free space available in the overlay;

analyzing I/O requests received after the second session start request to determine whether the I/O requests pertain to deployment of the second package;

for each of a third plurality of I/O requests that are determined to pertain to the deployment of the second package, maintaining a log of artifacts that are targeted by the third plurality of I/O requests;

in response to a second session stop request, employing the log to cause the write filter to commit each of the artifacts.

20. The computer storage media of claim 11 , wherein the method further comprises:

accessing a log to identify the artifacts that have been stored in the overlay cache as a result of redirecting each of the first plurality of I/O requests.

Assignments (9)
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 (053311/0169) Recorded Jun 23, 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 060438/0742 →
RELEASE OF SECURITY INTEREST IN PATENTS PREVIOUSLY RECORDED AT REEL/FRAME (050724/0571) Recorded Jun 23, 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 060436/0088 →
RELEASE OF SECURITY INTEREST AT REEL 050406 FRAME 421 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 058213/0825 →
SECURITY INTEREST Recorded Jun 5, 2020
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 053311/0169 →
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 →
PATENT SECURITY AGREEMENT (NOTES) Recorded Oct 15, 2019
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 050724/0571 →
SECURITY AGREEMENT Recorded Sep 17, 2019
From: DELL PRODUCTS L.P.; EMC CORPORATION; EMC IP HOLDING COMPANY LLC
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050406/0421 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2019
From: VAJRAVEL, GOKUL THIRUCHENGODE; BANDAKKA, JYOTHI
To: DELL PRODUCTS L.P.
Reel/Frame 049438/0346 →