IP Library Granted Patent US 11,573,755
Granted Patent B2
US 11,573,755 · App. 17/578,453 · Granted Feb 7, 2023

Cache management in a printing system in a virtualized computing environment

Inventors: Hui Yuan (Beijing, CN); Weigang Huang (Beijing, CN); Mangui She (Beijing, CN); Qi An (Beijing, CN); Hui Zhang (Beijing, CN); Kun Shi (Beijing, CN)
Assignee: VMWARE, INC.
G06F3/1263G06F3/122G06F3/1205G06F3/1259G06F3/1274G06F12/122G06F12/123G06F2212/1021
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,573,755
App. No.
17/578,453
Granted
Feb 7, 2023
Kind
B2
Abstract

A varied least recently used (VLRU) caching technique is used to enable print data to be available at a cache of a client for printing, even after an agent performs a deletion of a hash value for the print data at a cache of the agent. The deletion of the print data (cached at the cache of the client) is postponed at the client device via the use of a waiting list, so that the cached print data can be printed at a physical printer of the client, in response to receiving a delayed print job from the agent that specifies the hash value as a result of a deduplication process performed by the agent.

Claims (53)

1. A method performed by an agent to issue print jobs for print data to be printed by a client, the method comprising:

generating a first print job having a first data structure that includes a hash value corresponding to first print data at a cache node at the client, wherein the first data structure indicates that a deduplication condition exists for the first print data;

sending the first print job to the client;

generating a second print job having a second data structure that specifies a hit count for the hash value and a delete operation to be performed for the first print data at the cache node; and

sending the second print job to the client, after sending the first print job to the client,

wherein the client receives the second print job from the agent before receiving the first print job, and postpones, based at least in part on the hit count, execution of the delete operation specified by the second data structure in the second print job.

2. The method of claim 1 , wherein in response to receiving the first print job and based at least in part on the hash value and the hit count, the client locates the first print data at the cache node, sends the located first print data to a physical printer for printing, and executes the delete operation to delete the first print data from the cache node after completion of the printing.

3. The method of claim 1 , further comprising:

hashing new print data at the agent to obtain a particular hash value;

determining that a match exists between the new hash value and the hash value corresponding to the first print data; and

in response to determination that the match exists, incrementing the hit count by one.

4. The method of claim 1 , wherein sending the first print job to the client, under the deduplication condition, includes sending only the hash value without sending the first print data to the client.

5. The method of claim 1 , wherein:

generating the second print job includes generating the second data structure to include, in addition to specifying the hit count for the hash value and the delete operation, second print data, a hash value corresponding to the second print data, and an indication that the second print data is to be added to the cache at the client; and

sending the second print job includes sending, to the client, the generated second data structure that includes the second print data, the hash value corresponding to the second print data, and the indication that the second print data is to be added to the cache at the client.

6. The method of claim 1 , wherein the client postpones execution of the delete operation in response to the hit count specified in the second data structure being different than a hit count for the first print data at the cache node.

7. The method of claim 1 , wherein the agent is associated with a virtual desktop and with a virtual printer that is an instantiation of a physical printer of the client.

8. A computing device, comprising:

a processor associated with an agent; and

a non-transitory computer-readable medium coupled to the processor and having instructions stored thereon, which in response to execution by the processor, cause the agent to perform operations to issue print jobs for print data to be printed by a client, wherein the operations comprise:

generate a first print job having a first data structure that includes a hash value corresponding to first print data at a cache node at the client, wherein the first data structure indicates that a deduplication condition exists for the first print data;

send the first print job to the client;

generate a second print job having a second data structure that specifies a hit count for the hash value and a delete operation to be performed for the first print data at the cache node; and

send the second print job to the client, after sending the first print job to the client,

wherein the client receives the second print job from the agent before receiving the first print job, and postpones, based at least in part on the hit count, execution of the delete operation specified by the second data structure in the second print job.

9. The computing device of claim 8 , wherein in response to receiving the first print job and based at least in part on the hash value and the hit count, the client locates the first print data at the cache node, sends the located first print data to a physical printer for printing, and executes the delete operation to delete the first print data from the cache node after completion of the printing.

10. The computing device of claim 8 , wherein the operations further comprise:

hash new print data at the agent to obtain a particular hash value;

determine that a match exists between the new hash value and the hash value corresponding to the first print data; and

in response to determination that the match exists, increment the hit count by one.

11. The computing device of claim 8 , wherein the operations to send the first print job to the client, under the deduplication condition, includes operations to send only the hash value without sending the first print data to the client.

12. The computing device of claim 8 , wherein:

the operations to generate the second print job includes operations to generate the second data structure to include, in addition to specifying the hit count for the hash value and the delete operation, second print data, a hash value corresponding to the second print data, and an indication that the second print data is to be added to the cache at the client; and

the operations to send the second print job includes operations to send, to the client, the generated second data structure that includes the second print data, the hash value corresponding to the second print data, and the indication that the second print data is to be added to the cache at the client.

13. The computing device of claim 8 , wherein the client postpones execution of the delete operation in response to the hit count specified in the second data structure being different than a hit count for the first print data at the cache node.

14. The computing device of claim 8 , wherein the agent is associated with a virtual desktop and with a virtual printer that is an instantiation of a physical printer of the client.

15. A method performed by a client to process print jobs that originate from an agent, the method comprising:

receiving a print job having a data structure generated by the agent, wherein the data structure specifies a delete operation to be performed for print data at a cache node at a cache at the client, and wherein the data structure further specifies a hit count for a hash value corresponding to the print data at the cache node;

reading the data structure in the print job; and

in response to determining that the received data structure specifies the delete operation and based at least in part on the hit count, postponing deletion of the print data from the cache node by storing the hash value in a waiting list at the client.

16. The method of claim 15 , wherein the client postpones deletion of the print data in response to the hit count specified in the data structure being different than a hit count for the print data at the cache node.

17. The method of claim 15 , further comprising:

receiving another print job that is out-of-sequence in time relative to the print job, wherein the another print job has another data structure generated by the agent, and wherein the another data structure indicates that a deduplication condition exists for the print data corresponding to the hash value; and

in response to determining that the another data structure indicates the deduplication condition:

locating the print data in the cache node using the hash value;

sending the located print data to a physical printer for printing; and

after completion of the printing, executing the delete operation to delete the print data from the cache node.

18. The method of claim 17 , wherein the another data structure includes the hash value and omits the print data.

19. The method of claim 15 , wherein the print data comprises first print data, and wherein the method further comprises:

receiving another print job that has another data structure generated by the agent, wherein the another data structure includes second print data, a hash value corresponding to the second print data, and an indication that the second print data is to be added to the cache at the client; and

adding the second print data to the cache.

20. The method of claim 15 , wherein the print data comprises first print data, and wherein the data structure, which specifies the hit count for the hash value and the delete operation, further includes:

second print data, a hash value corresponding to the second print data, and an indication that the second print data is to be added to the cache at the client.

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 →
Continuity (2)
Continuation 17084641 · Oct 30, 2020
Related Publication 20220137905A1 · May 5, 2022