IP Library Granted Patent US 9,448,816
Granted Patent B2
US 9,448,816 · App. 13/872,969 · Granted Sep 20, 2016

Virtual desktop infrastructure (VDI) caching using context

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 9,448,816
App. No.
13/872,969
Granted
Sep 20, 2016
Kind
B2
Abstract

In one embodiment a method for storing a remote desktop GUI image block in a cache including a plurality of persistence levels is described. The method is comprised of maintaining each persistence level in the plurality of persistence levels; identifying an event associated with an update to the remote desktop GUI; determining a context for the event; selecting one of the persistence levels for the event based on the context; and storing an image block corresponding to the update in the selected one of the persistence levels.

Claims (70)

1. A method for storing a remote desktop graphical user interface (GUI) image block in a cache, the cache including a plurality of persistence levels, the method comprising:

maintaining, by a computing device, each persistence level in the plurality of persistence levels;

identifying, by the computing device, an event associated with an update to the remote desktop GUI;

determining, by the computing device, a context for the event;

determining, by the computing device, when a first type of event based on a hint related to a display of content on the remote desktop GUI or a second type of event based on a discontinuity event related to the display of content for remote desktop GUI has occurred;

when the first type of event has occurred, performing:

selecting, by the computing device, one of the persistence levels for the event based on the context; and

storing, by the computing device, an image block corresponding to the update with the selected one of the persistence levels;

when the second type of event has occurred, performing:

reviewing, by the computing device, a set of image blocks in one of the persistence levels that are associated with the event based on the context; and

moving, by the computing device, an image block in the set of image blocks to another persistence level based on the context.

2. The method of claim 1 , wherein maintaining comprises maintaining each persistence level in the plurality of persistence levels using a different cache replacement process, wherein the cache replacement process for each persistence level is based on a different level of persistence to evict image blocks of the remote desktop GUI from each persistence level.

3. The method of claim 1 , wherein the event comprises the discontinuity event for a workflow of a user using the remote desktop GUI.

4. The method of claim 3 , wherein the discontinuity event is determined based on a change of an image of the remote desktop GUI.

5. The method of claim 3 , wherein moving the image block comprises:

determining a current state of an image of the remote desktop GUI as the context, and

moving the image block from a lower persistence level to a higher persistence level if the image block corresponds to an image block in the current state of the image.

6. The method of claim 5 , wherein:

different image blocks in the cache are classified differently according to the context for the remote desktop GUI, and

the different image blocks are moved to different persistence levels based on the different classifications.

7. The method of claim 3 , further comprising storing the image of the remote desktop GUI in a persistence level in the plurality of persistence levels in response to determining the discontinuity event, wherein the image is stored before or after the discontinuity event.

8. The method of claim 1 , wherein:

the context comprises the hint detected from the remote desktop GUI, and

the selected one of the persistence levels is determined based on the hint.

9. The method of claim 8 , wherein image blocks for the remote desktop GUI are stored in a short term persistence level unless the hint detected from the remote desktop GUI indicates the image block should be stored in a higher level persistence level.

10. The method of claim 8 , wherein:

the hint comprises information received from a peripheral device, and

the hint from the peripheral device is analyzed and used to select one of the persistence levels in which to store the image block.

11. The method of claim 8 , wherein:

the hint comprises information for an image type, and

different image types cause the image block to be stored in different persistence levels.

12. A non-transitory computer-readable storage medium containing instructions for storing a remote desktop graphical user interface (GUI) image block in a cache, the cache including a plurality of persistence levels, the instructions, when executed, for controlling a computer system to be configured for:

maintaining each persistence level in the plurality of persistence levels;

identifying an event associated with an update to the remote desktop GUI;

determining a context for the event;

determining when a first type of event based on a hint related to a display of content on the remote desktop GUI or a second type of event based on a discontinuity event related to the display of content for remote desktop GUI has occurred;

when the first type of event has occurred, performing:

selecting one of the persistence levels for the event based on the context; and

storing an image block corresponding to the update with the selected one of the persistence levels;

when the second type of event has occurred, performing:

reviewing a set of image blocks in one of the persistence levels that are associated with the event based on the context; and

moving an image block in the set of image blocks to another persistence level based on the context.

13. The non-transitory computer-readable storage medium of claim 12 , wherein maintaining comprises maintaining each persistence level in the plurality of persistence levels using a different cache replacement process, wherein the cache replacement process for each persistence level is based on a different level of persistence to evict image blocks of the remove desktop GUI from each persistence level.

14. The non-transitory computer-readable storage medium of claim 12 , wherein the event comprises the discontinuity event for a workflow of a user using the remote desktop GUI.

15. The non-transitory computer-readable storage medium of claim 14 , wherein moving the image block comprises:

determining a current state of an image of the remote desktop GUI as the context, and

moving the image block from a lower persistence level to a higher persistence level if the image block corresponds to an image block in the current state of the image.

16. The non-transitory computer-readable storage medium of claim 15 , wherein:

different image blocks in the cache are classified differently according to the context for the remote desktop GUI, and

the different image blocks are moved to different persistence levels based on the different classifications.

17. The non-transitory computer-readable storage medium of claim 12 , wherein:

the context comprises the hint detected from the remote desktop GUI, and

the selected one of the persistence levels is determined based on the hint.

18. The non-transitory computer-readable storage medium of claim 17 , wherein image blocks for the remote desktop GUI are stored in a short term persistence level unless the hint detected from the remote desktop GUI indicates the image block should be stored in a higher level persistence level.

19. The non-transitory computer-readable storage medium of claim 17 , wherein:

the hint comprises information received from a peripheral device or an image type, and

the hint from the peripheral device is analyzed and used to determine the persistence level in which to store the image block.

20. An apparatus configured to store a remote desktop graphical user interface (GUI) image block in a cache, the cache including a plurality of persistence levels, the apparatus comprising:

one or more computer processors; and

a non-transitory computer-readable storage medium comprising instructions, that when executed, control the one or more computer processors to be configured for:

maintaining each persistence level in the plurality of persistence levels;

identifying an event associated with an update to the remote desktop GUI;

determining a context for the event;

determining when a first type of event based on a hint related to a display of content on the remote desktop GUI or a second type of event based on a discontinuity event related to the display of content for remote desktop GUI has occurred;

when the first type of event has occurred, performing:

selecting one of the persistence levels for the event based on the context; and

storing an image block corresponding to the update with the selected one of the persistence levels;

when the second type of event has occurred, performing:

reviewing a set of image blocks in one of the persistence levels that are associated with the event based on the context; and

moving an image block in the set of image blocks to another persistence level based on the context.

Assignments (3)
PATENT ASSIGNMENT Recorded Aug 5, 2024
From: VMWARE LLC
To: OMNISSA, LLC
Reel/Frame 068327/0365 →
SECURITY INTEREST Recorded Jul 3, 2024
From: OMNISSA, LLC
To: UBS AG, STAMFORD BRANCH
Reel/Frame 068118/0004 →
CHANGE OF NAME Recorded Apr 15, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067102/0395 →