IP Library Patent Application 17901268
Patent Application
App. No. 17/901,268

METHOD FOR REUSING IDENTIFIERS TO IMPROVE PERFORMANCE OF OPEN AND CLOSE INPUT/OUTPUT REQUESTS FOR CLIENT DRIVE REDIRECTION

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 None
App. No.
17/901,268
Abstract

A method of performing open and close input/output (I/O) requests targeting a directory of a client computing device includes the steps of: receiving a first I/O request to open the directory, from a driver of a host server, forwarding the first I/O request to the client computing device; in response to the first I/O request, receiving an identifier (ID) of the directory from the client computing device and transmitting the ID to the driver; in response to receiving a second I/O request to close the directory, from the driver, storing the ID in a cache, and not forwarding the second I/O request to the client computing device; and in response to receiving a third I/O request to open the directory, from the driver, retrieving the ID from the cache, and transmitting the ID to the driver again.

Claims (57)

1 . A method of performing open and close input/output (I/O) requests targeting a directory of a client computing device during a process of copying a plurality of files of the directory from the client computing device to a host server that is hosting a remote desktop accessed by the client computing device, the method comprising:

receiving a first I/O request to open the directory, from a driver of the host server;

forwarding the first I/O request to the client computing device;

in response to the first I/O request, receiving an identifier (ID) of the directory from the client computing device and transmitting the ID to the driver;

in response to receiving a second I/O request to close the directory, from the driver, storing the ID in a cache, and not forwarding the second I/O request to the client computing device, and

in response to receiving a third I/O request to open the directory, from the driver, retrieving the ID from the cache, and transmitting the ID to the driver again.

2 . The method of claim 1 , further comprising:

upon the transmitting of the ID to the driver again, removing the ID from the cache.

3 . The method of claim 2 , further comprising:

after the removing of the ID from the cache, and in response to receiving a fourth I/O request to close the directory, from the driver, storing the ID in the cache again, and not forwarding the fourth I/O request to the client computing device.

4 . The method of claim 3 , further comprising:

in response to a predetermined amount of time elapsing after the storing of the ID in the cache again, removing the ID from the cache again and transmitting a fifth I/O request to the client computing device to close the directory.

5 . The method of claim 3 , further comprising:

after the storing of the ID in the cache again and in response to receiving a fifth I/O request to exclusively open the directory without sharing access to the directory, removing the ID from the cache again.

6 . The method of claim 1 , further comprising:

receiving a plurality of I/O requests from the driver between the receiving of the first I/O request from the driver and the receiving of the second I/O request from the driver; and

determining that the plurality of I/O requests are each in a whitelist of predetermined types of I/O requests, wherein the storing of the ID in the cache is performed in response to the determining that the plurality of I/O requests are each in the whitelist.

7 . The method of claim 1 , further comprising:

determining that there are no I/O requests that fit all of the following criteria: (1) has already been transmitted to the client computing device, (2) targets the ID, and (3) a response thereto has not been received from the client computing device, wherein the storing of the ID in the cache is performed in response to the determining that there are no I/O requests that fit the criteria.

8 . A non-transitory computer-readable medium comprising instructions that are executable in a remote desktop system, wherein the instructions when executed cause the remote desktop system to carry out a method of performing open and close input/output (I/O) requests targeting a directory of a client computing device during a process of copying a plurality of files of the directory from the client computing device to a host server that is hosting a remote desktop accessed by the client computing device, the method comprising:

receiving a first I/O request to open the directory, from a driver of the host server;

forwarding the first I/O request to the client computing device;

in response to the first I/O request, receiving an identifier (ID) of the directory from the client computing device and transmitting the ID to the driver;

in response to receiving a second I/O request to close the directory, from the driver, storing the ID in a cache, and not forwarding the second I/O request to the client computing device, and

in response to receiving a third I/O request to open the directory, from the driver, retrieving the ID from the cache, and transmitting the ID to the driver again.

9 . The non-transitory computer-readable medium of claim 8 , the method further comprising:

upon the transmitting of the ID to the driver again, removing the ID from the cache.

10 . The non-transitory computer-readable medium of claim 9 , the method further comprising:

after the removing of the ID from the cache, and in response to receiving a fourth I/O request to close the directory, from the driver, storing the ID in the cache again, and not forwarding the fourth I/O request to the client computing device.

11 . The non-transitory computer-readable medium of claim 10 , the method further comprising:

in response to a predetermined amount of time elapsing after the storing of the ID in the cache again, removing the ID from the cache again and transmitting a fifth I/O request to the client computing device to close the directory.

12 . The non-transitory computer-readable medium of claim 10 , the method further comprising:

after the storing of the ID in the cache again and in response to receiving a fifth I/O request to exclusively open the directory without sharing access to the directory, removing the ID from the cache again.

13 . The non-transitory computer-readable medium of claim 8 , the method further comprising:

receiving a plurality of I/O requests from the driver between the receiving of the first I/O request from the driver and the receiving of the second I/O request from the driver; and

determining that the plurality of I/O requests are each in a whitelist of predetermined types of I/O requests, wherein the storing of the ID in the cache is performed in response to the determining that the plurality of I/O requests are each in the whitelist.

14 . The non-transitory computer-readable medium of claim 8 , the method further comprising:

determining that there are no I/O requests that fit all of the following criteria: (1) has already been transmitted to the client computing device, (2) targets the ID, and (3) a response thereto has not been received from the client computing device, wherein the storing of the ID in the cache is performed in response to the determining that there are no I/O requests that fit the criteria.

15 . A remote desktop system comprising:

a client computing device storing a directory including a plurality of files to be copied to the host server; and

a host server including a software program and a driver, wherein the software program is configured to:

receive a first I/O request to open the directory, from the driver;

forward the first I/O request to the client computing device;

in response to the first I/O request, receive an identifier (ID) of the directory from the client computing device and transmit the ID to the driver;

in response to receiving a second I/O request to close the directory, from the driver, store the ID in a cache, and not forward the second I/O request to the client computing device; and

in response to receiving a third I/O request to open the directory, from the driver, retrieve the ID from the cache, and transmit the ID to the driver again.

16 . The remote desktop system of claim 15 , wherein the software program is further configured to:

upon the transmitting of the ID to the driver again, remove the ID from the cache.

17 . The remote desktop system of claim 16 , wherein the software program is further configured to:

after the removing of the ID from the cache, and in response to receiving a fourth I/O request to close the directory, from the driver, store the ID in the cache again, and not forward the fourth I/O request to the client computing device.

18 . The remote desktop system of claim 17 , wherein the software program is further configured to:

in response to a predetermined amount of time elapsing after the storing of the ID in the cache again, remove the ID from the cache again and transmitting a fifth I/O request to the client computing device to close the directory.

19 . The remote desktop system of claim 17 , wherein the software program is further configured to:

after the storing of the ID in the cache again and in response to receiving a fifth I/O request to exclusively open the directory without sharing access to the directory, remove the ID from the cache again.

20 . The remote desktop system of claim 15 , wherein the software program is further configured to:

receive a plurality of I/O requests from the driver between the receiving of the first I/O request from the driver and the receiving of the second I/O request from the driver; and

determine that the plurality of I/O requests are each in a whitelist of predetermined types of I/O requests, wherein the storing of the ID in the cache is performed in response to the determining that the plurality of I/O requests are each in the whitelist.

Assignments (4)
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 25, 2024
From: VMWARE, INC.
To: VMWARE LLC
Reel/Frame 067239/0402 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 1, 2022
From: BAI, WU; ZHAO, HAIWEI; HUANG, WEIGANG; YAN, FENG; SHI, KUN
To: VMWARE, INC.
Reel/Frame 060967/0428 →