# US 2014/0156778 A1 · Managing a distributed cache for virtual machines

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 2014/0156778 A1
- Document ID: US20140156778A1
- Status: Published application
- Kind: A1
- Application number: 13/691,211
- Filed: 2012-11-30
- Published: 2014-06-05
- Earliest claimed: 2012-11-30
- Assignees: Red Hat Israel, Ltd.
- Applicants: Red Hat Israel, Ltd.
- Inventors: Roni Luxenberg; Uri Lublin
- Web page: https://patentgrep.com/patent/US20140156778A1

## CPC

- H04L 67/568: Storing data temporarily at an intermediate stage, e.g. caching
- G06F 9/451: Execution arrangements for user interfaces
- G06F 9/45533: {Hypervisors; Virtual machine monitors}
- G06F 15/167: using a common memory, e.g. mailbox
- H04L 67/288: Distributed intermediate devices, i.e. intermediate devices for interaction with other intermediate devices on the same level
- H04L 63/083: {using passwords (cryptographic mechanisms or cryptographic arrangements for entity authentication using a predetermined code H04L9/3226)}
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)

## Abstract

Clients may display desktop environments to provide users with access to virtual machines (VMs). Graphical objects that displayed in the desktop environments are stored in caches in multiple clients. A host that hosts a VM may track or manage the graphical objects that are in the caches of the multiple clients. The host may instruct a first client to obtain a graphical object from a second client that is near the first client, instead of providing the graphical object to the first client directly.

## Claims

### Claim 1

A method comprising:
receiving, by a first service, a first desktop image data, wherein the first desktop image data uses a first graphical object;
obtaining a first object identifier for the first graphical object;
determining whether the first object identifier is in a cache list;
when the first object identifier is in the cache list:
identifying a first device identifier associated with the first graphical object; and
providing, by the first service, the first object identifier and one or more of the first desktop image data or the first device identifier to a first client device;
and
when the first object identifier is not in the list:
obtaining a second device identifier for the first client device;
storing data indicative of an association between the first object identifier with the second device identifier in the cache list; and
providing, by the first service, the first desktop image data and the first graphical object to the first client device.

### Claim 2 (depends on 1)

The method of claim 1, further comprising:
receiving, from a second service, data indicative of additional associations between additional object identifiers for additional graphical objects and a third device identifier for a second client device; and
storing the data indicative of the additional associations in the cache list.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
receiving, by the first service, a second desktop image data, wherein the second desktop image data uses a second graphical object;
obtaining a second object identifier for the second graphical object;
obtaining the third device identifier associated with the second object identifier based on the cache list; and
providing, by the first service, the second desktop image data, the second object identifier, and the third device identifier, to the first client device.

### Claim 4 (depends on 2)

The method of claim 2, further comprising:
determining that the second service is no longer operating; and
removing object identifiers associated with the third device identifier from the cache list.

### Claim 5 (depends on 2)

The method of claim 2, wherein the first client device and the second client device are located on a same local area network (LAN), the first client device and the second client device are located in a same geographical area, or the first client device and the second client device use a same network service provider.

### Claim 6 (depends on 2)

The method of claim 2, further comprising:
determining that the second client device is no longer operating; and
removing object identifiers associated with the second device identifier from the cache list.

### Claim 7 (depends on 1)

The method of claim 1, wherein the first client device is to display a desktop environment based on the first desktop image data.

### Claim 8 (depends on 1)

The method of claim 1, wherein the first device identifier is associated with a second client device and wherein the first client device receives the first graphical object from the second client device.

### Claim 9 (depends on 1)

The method of claim 1, further comprising:
authenticating the first client device.

### Claim 10

A system comprising:
a memory to store a cache list;
a processing device coupled to the memory, the processing device to receive a first desktop image data, wherein the first desktop image data uses a first graphical object;
obtain a first object identifier for the first graphical object;
determine whether the first object identifier is in the cache list;
when the first object identifier is in the cache list:
identify a first device identifier associated with the first graphical object; and
provide the first object identifier and one or more of the first desktop image data or the first device identifier to a first client device; and
when the first object identifier is not in the list:
obtain a second device identifier for the first client device;
store data indicative of an association between the first object identifier with the second device identifier in the cache list; and
provide the first desktop image data and the first graphical object to the first client device.

### Claim 11 (depends on 10)

The system of claim 10, wherein the processing device is further to:
receive, from a service, data indicative of additional associations between additional object identifiers for additional graphical objects and a third device identifier for a second client device; and
store the data indicative of the additional associations in the cache list.

### Claim 12 (depends on 11)

The system of claim 11, wherein the processing device is further to:
receive a second desktop image data, wherein the second desktop image data uses a second graphical object;
obtain a second object identifier for the second graphical object;
obtain the third device identifier associated with the second object identifier based on the cache list; and
provide the second desktop image data, the second object identifier, and the third device identifier, to the first client device.

### Claim 13 (depends on 11)

The system of claim 11, wherein the processing device is further to:
determine that the service is no longer operating; and
remove object identifiers associated with the third device identifier from the cache list.

### Claim 14 (depends on 11)

The system of claim 11, wherein the processing device is further to:
determine that the second client device is no longer operating; and
remove object identifiers associated with the second device identifier from the cache list.

### Claim 15 (depends on 10)

The system of claim 10, wherein the processing device is further to:
authenticate the first client device.

### Claim 16

A non-transitory computer readable storage medium having instructions that, when executed by a processing device, cause the processing device to perform operations comprising:
receiving, by the processing device, a first desktop image data, wherein the first desktop image data uses a first graphical object;
obtaining a first object identifier for the first graphical object;
determining whether the first object identifier is in a cache list;
when the first object identifier is in the cache list:
identifying a first device identifier associated with the first graphical object; and
providing, by the processing device, the first object identifier and one or more of the first desktop image data or the first device identifier to a first client device; and
when the first object identifier is not in the list:
obtaining a second device identifier for the first client device;
storing data indicative of an association between the first object identifier with the second device identifier in the cache list; and
providing, by the processing device, the first desktop image data and the first graphical object to the first client device.

### Claim 17 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the operations further comprise:
receiving, from a service, data indicative of additional associations between additional object identifiers for additional graphical objects and a third device identifier for a second client device; and
storing the data indicative of the additional associations in the cache list.

### Claim 18 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the operations further comprise:
receiving, by the processing device, a second desktop image data, wherein the second desktop image data uses a second graphical object;
obtaining a second object identifier for the second graphical object;
obtaining the third device identifier associated with the second object identifier based on the cache list; and
providing, by the processing device, the second desktop image data, the second object identifier, and the third device identifier, to the first client device.

### Claim 19 (depends on 17)

The non-transitory computer readable storage medium of claim 17, wherein the operations further comprise:
determining that the service is no longer operating; and
removing object identifiers associated with the third device identifier from the cache list.

### Claim 20 (depends on 16)

The non-transitory computer readable storage medium of claim 16, wherein the operations further comprise:
authenticating the first client device.
