IP Library Granted Patent US 11,989,419
Granted Patent B2
US 11,989,419 · App. 17/814,942 · Granted May 21, 2024

Storage device write performance in remote computing environments

Inventors: Weigang Huang (Beijing, CN); Yueting Zhang (Beijing, CN)
Assignee: VMware LLC
G06F3/0613G06F3/0655G06F3/0664G06F3/067
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,989,419
App. No.
17/814,942
Granted
May 21, 2024
Kind
B2
Abstract

The disclosure provides an approach for storage device write performance improvement in a remote computing environment. Embodiments include creating, on a remote device that is remote from a client device, a virtual storage device corresponding to a physical storage device physically connected to the client device. Embodiments include receiving, by a driver on the remote device, a request from an application on the remote device to perform a write operation with respect to the virtual storage device. Embodiments include sending, by the remote device, a write operation to the client device based on the request. Embodiments include prior to receiving a confirmation from the client device that the write operation was received or completed, sending, by the driver, to the application, a message indicating that the write operation is complete. Embodiments include receiving, by the driver, based on the message, an additional request to perform an additional write operation.

Claims (37)

1. A method of storage device write performance improvement in a remote computing environment, the method comprising:

creating, on a remote device that is remote from a client device, a virtual storage device corresponding to a physical storage device that is physically connected to the client device;

receiving, by a driver on the remote device, a request from an application on the remote device to perform a write operation with respect to the virtual storage device;

sending, by the remote device, over a network, a block-level write operation to the client device based on the request;

prior to receiving, by the remote device, a confirmation from the client device that the block-level write operation was received or completed, sending, by the driver, to the application, a message indicating that the block-level write operation is complete; and

receiving, by the driver, based on the message, an additional request from the application to perform an additional write operation with respect to the virtual storage device.

2. The method of claim 1 , wherein the driver sends the message based on receiving, from a block device agent on the remote device, a respective message indicating that the block-level write operation is complete.

3. The method of claim 2 , wherein the block device agent sends the respective message prior to receiving a response to a call from the block device agent to an application programming interface (API) function for sending the write operation via a virtual channel to the client device.

4. The method of claim 2 , wherein the block device agent sends the respective message based on receiving a response to a call to an application programming interface (API) function for sending the write operation via a virtual channel to the client device.

5. The method of claim 4 , further comprising creating the virtual channel between the remote device and the client device, wherein the block-level write operation is transmitted via the virtual channel based on the call to the API function.

6. The method of claim 1 , wherein the physical storage device is a universal serial bus (USB) device connected to the client device.

7. The method of claim 6 , wherein the block-level write operation is converted to a USB request block (URB) request on the client device.

8. A system for storage device write performance improvement in a remote computing environment, the system comprising:

at least one memory; and

at least one processor coupled to the at least one memory, the at least one processor and the at least one memory configured to:

create, on a remote device that is remote from a client device, a virtual storage device corresponding to a physical storage device that is physically connected to the client device;

receive, by a driver on the remote device, a request from an application on the remote device to perform a write operation with respect to the virtual storage device;

send, by the remote device, over a network, a block-level write operation to the client device based on the request;

prior to receiving, by the remote device, a confirmation from the client device that the block-level write operation was received or completed, send, by the driver, to the application, a message indicating that the block-level write operation is complete; and

receive, by the driver, based on the message, an additional request from the application to perform an additional write operation with respect to the virtual storage device.

9. The system of claim 8 , wherein the driver sends the message based on receiving, from a block device agent on the remote device, a respective message indicating that the block-level write operation is complete.

10. The system of claim 9 , wherein the block device agent sends the respective message prior to receiving a response to a call from the block device agent to an application programming interface (API) function for sending the write operation via a virtual channel to the client device.

11. The system of claim 9 , wherein the block device agent sends the respective message based on receiving a response to a call to an application programming interface (API) function for sending the write operation via a virtual channel to the client device.

12. The system of claim 11 , wherein the at least one processor and the at least one memory are further configured to create the virtual channel between the remote device and the client device, wherein the block-level write operation is transmitted via the virtual channel based on the call to the API function.

13. The system of claim 8 , wherein the physical storage device is a universal serial bus (USB) device connected to the client device.

14. The system of claim 13 , wherein the block-level write operation is converted to a USB request block (URB) request on the client device.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more processors, cause the one or more processors to:

create, on a remote device that is remote from a client device, a virtual storage device corresponding to a physical storage device that is physically connected to the client device;

receive, by a driver on the remote device, a request from an application on the remote device to perform a write operation with respect to the virtual storage device;

send, by the remote device, over a network, a block-level write operation to the client device based on the request;

prior to receiving, by the remote device, a confirmation from the client device that the block-level write operation was received or completed, send, by the driver, to the application, a message indicating that the block-level write operation is complete; and

receive, by the driver, based on the message, an additional request from the application to perform an additional write operation with respect to the virtual storage device.

16. The non-transitory computer-readable medium of claim 15 , wherein the driver sends the message based on receiving, from a block device agent on the remote device, a respective message indicating that the block-level write operation is complete.

17. The non-transitory computer-readable medium of claim 16 , wherein the block device agent sends the respective message prior to receiving a response to a call from the block device agent to an application programming interface (API) function for sending the write operation via a virtual channel to the client device.

18. The non-transitory computer-readable medium of claim 16 , wherein the block device agent sends the respective message based on receiving a response to a call to an application programming interface (API) function for sending the write operation via a virtual channel to the client device.

19. The non-transitory computer-readable medium of claim 18 , wherein the instructions, when executed by the one or more processors, further cause the one or more processors to create the virtual channel between the remote device and the client device, wherein the block-level write operation is transmitted via the virtual channel based on the call to the API function.

20. The non-transitory computer-readable medium of claim 15 , wherein the physical storage device is a universal serial bus (USB) device connected to the client device.

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 Jul 26, 2022
From: HUANG, WEIGANG; ZHANG, YUETING
To: VMWARE, INC.
Reel/Frame 060623/0440 →