IP Library Granted Patent US 10,516,583
Granted Patent B1
US 10,516,583 · App. 15/471,191 · Granted Dec 24, 2019

Systems and methods for managing quality of service

Inventors: Prasanna Wakhare (Pune, IN); Shailesh Marathe (Pune, IN); Niranjan Pendharkar (Pune, IN); Dhruv Bhatnagar (Pune, IN); Gaurav Bhandarkar (Pune, IN)
Assignee: Veritas Technologies LLC
H04L41/5003H04L43/0852H04L43/16H04L41/0896H04L41/5009
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 10,516,583
App. No.
15/471,191
Filed
Mar 28, 2017
Granted
Dec 24, 2019
Kind
B1
Art Unit
2447
USPC
709/224
Abstract

The disclosed computer-implemented method for managing quality of service may include (i) installing, at a network protocol layer, a latency monitoring plug-in that monitors latency at the network protocol layer as distinct from a storage layer beneath the network protocol layer, (ii) providing, by the latency monitoring plug-in, feedback reporting the latency at the network protocol layer to a quality of service engine that monitors characteristics of the storage layer such that the quality of service engine learns about the latency at the network protocol layer, and (iii) adjusting, by the quality of service engine, a calculation of system capacity, based on both the feedback from the latency monitoring plug-in reporting the latency at the network protocol layer and the monitored characteristics of the storage layer to enable an application to adhere to a service level agreement. Various other methods, systems, and computer-readable media are also disclosed.

Claims (48)

1. A computer-implemented method for managing quality of service, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

installing, at a network protocol layer, a latency monitoring plug-in that monitors latency at the network protocol layer as distinct from a storage layer beneath the network protocol layer;

providing, by the latency monitoring plug-in, feedback reporting the latency at the network protocol layer to a quality of service engine that monitors characteristics of the storage layer beneath the network protocol layer such that the quality of service engine learns about the latency at the network protocol layer; and

adjusting, by the quality of service engine, a calculation of system capacity, based on both the feedback from the latency monitoring plug-in reporting the latency at the network protocol layer and the monitored characteristics of the storage layer beneath the network protocol layer to enable an application to adhere to a service level agreement despite the latency at the network protocol layer;

wherein:

the feedback reports an average latency for a multitude of workloads to the quality of service engine;

adjusting the calculation further comprises calculating a network capacity based on the latency at the network protocol layer as latency perceived by the application and calculating a storage capacity based on the monitored characteristics of the storage layer; and

the method further comprises selecting the minimum between the network capacity and the storage capacity as the system capacity to enable the application to adhere to the service level agreement despite the latency at the network protocol layer.

2. The computer-implemented method of claim 1 , wherein the network protocol layer corresponds to the QUICK EMULATOR hypervisor.

3. The computer-implemented method of claim 1 , wherein the network protocol layer corresponds to the NETWORK BLOCK DEVICE.

4. The computer-implemented method of claim 1 , wherein the network protocol layer corresponds to the INTERNET SMALL COMPUTER SYSTEMS INTERFACE.

5. The computer-implemented method of claim 1 , wherein the latency at the network protocol layer is induced by an I/O path at the network protocol layer.

6. The computer-implemented method of claim 1 , wherein the network protocol layer corresponds to the NETWORK FILE SYSTEM.

7. The computer-implemented method of claim 1 , wherein the application corresponds to a guest virtual machine of a hypervisor.

8. The computer-implemented method of claim 7 , wherein the storage layer corresponds to storage shared by multiple guest virtual machines of the hypervisor.

9. The computer-implemented method of claim 7 , wherein at least one of:

an administrator specifies a latency tolerance for the guest virtual machine; and

the quality of service engine learns the latency tolerance for the guest virtual machine.

10. The computer-implemented method of claim 1 , wherein:

a previous inability of the quality of service engine to learn about the latency at the network protocol layer creates a potential noisy neighbor problem, according to a statistical latency analysis, when a neighbor consumes a network resource beyond a threshold; and

providing, by the latency monitoring plug-in, feedback reporting the latency at the network protocol layer to the quality of service engine such that the quality of service engine learns about the latency at the network protocol layer effectively solves the potential noisy neighbor problem.

11. A system for managing quality of service, the system comprising:

an installation module, stored in a memory, that installs, at a network protocol layer, a latency monitoring plug-in that monitors latency at the network protocol layer as distinct from a storage layer beneath the network protocol layer;

a provisioning module, stored in the memory, that provides, through the latency monitoring plug-in, feedback reporting the latency at the network protocol layer to a quality of service engine that monitors characteristics of the storage layer beneath the network protocol layer such that the quality of service engine learns about the latency at the network protocol layer;

an adjusting module, stored in the memory, that adjusts, as part of the quality of service engine, a calculation of system capacity, based on both the feedback from the latency monitoring plug-in reporting the latency at the network protocol layer and the monitored characteristics of the storage layer beneath the network protocol layer to enable an application to adhere to a service level agreement despite the latency at the network protocol layer; and

at least one physical processor configured to execute the installation module, the provisioning module, and the adjusting module;

wherein:

the feedback reports an average latency for a multitude of workloads to the quality of service engine;

the adjusting module adjusts the calculation at least in part by calculating a network capacity based on the latency at the network protocol layer as latency perceived by the application and calculating a storage capacity based on the monitored characteristics of the storage layer; and

the adjusting module selects the minimum between the network capacity and the storage capacity as the system capacity to enable the application to adhere to the service level agreement despite the latency at the network protocol layer.

12. The system of claim 11 , wherein the network protocol layer corresponds to the QUICK EMULATOR hypervisor.

13. The system of claim 11 , wherein the network protocol layer corresponds to the NETWORK BLOCK DEVICE.

14. The system of claim 11 , wherein the network protocol layer corresponds to the INTERNET SMALL COMPUTER SYSTEMS INTERFACE.

15. The system of claim 11 , wherein the latency at the network protocol layer is induced by an I/O path at the network protocol layer.

16. The system of claim 11 , wherein the network protocol layer corresponds to the NETWORK FILE SYSTEM.

17. The system of claim 11 , wherein the application corresponds to a guest virtual machine of a hypervisor.

18. The system of claim 17 , wherein the storage layer corresponds to storage shared by multiple guest virtual machines of the hypervisor.

19. The system of claim 17 , wherein at least one of:

an administrator specifies latency tolerance for the guest virtual machine; and

the quality of service engine learns the latency tolerance for the guest virtual machine.

20. A non-transitory computer-readable medium comprising one or more computer-readable instructions that, when executed by at least one processor of a computing device, cause the computing device to:

install, at a network protocol layer, a latency monitoring plug-in that monitors latency at the network protocol layer as distinct from a storage layer beneath the network protocol layer;

provide, by the latency monitoring plug-in, feedback reporting the latency at the network protocol layer to a quality of service engine that monitors characteristics of the storage layer beneath the network protocol layer such that the quality of service engine learns about the latency at the network protocol layer; and

adjust, by the quality of service engine, a calculation of system capacity, based on both the feedback from the latency monitoring plug-in reporting the latency at the network protocol layer and the monitored characteristics of the storage layer beneath the network protocol layer to enable an application to adhere to a service level agreement despite the latency at the network protocol layer;

wherein:

the feedback reports an average latency for a multitude of workloads to the quality of service engine;

adjusting the calculation further comprises calculating a network capacity based on the latency at the network protocol layer as latency perceived by the application and calculating a storage capacity based on the monitored characteristics of the storage layer; and

the instructions further cause the computing device to select the minimum between the network capacity and the storage capacity as the system capacity to enable the application to adhere to the service level agreement despite the latency at the network protocol layer.

Assignments (14)
CORRECTIVE ASSIGNMENT TO CORRECT THE CONVEYING PARTY DATA AND CORRECT THE PATENT NUMBERS PREVIOUSLY RECORDED AT REEL: 69548 FRAME: 468. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Feb 4, 2026
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 074876/0584 →
SECURITY INTEREST Recorded Dec 12, 2025
From: ARCTERA US LLC
To: CITIBANK, N.A., AS COLLATERAL AGENT
Reel/Frame 073951/0470 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 070530/0497 Recorded Dec 1, 2025
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0730 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 069585/0150 Recorded Dec 1, 2025
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: ARCTERA US LLC
Reel/Frame 073833/0848 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069634/0584 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069574/0931 →
SECURITY INTEREST Recorded Dec 10, 2024
From: ARCTERA US LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 069563/0243 →
PATENT SECURITY AGREEMENT Recorded Dec 10, 2024
From: ARCTERA US LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 069585/0150 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC
To: ARCTERA US LLC
Reel/Frame 069548/0468 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS AT R/F 052426/0001 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 054535/0565 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Apr 16, 2020
From: VERITAS TECHNOLOGIES, LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 052426/0001 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Jul 10, 2017
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 043141/0403 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 28, 2017
From: WAKHARE, PRASANNA; MARATHE, SHAILESH; PENDHARKAR, NIRANJAN; BHATNAGAR, DHRUV; BHANDARKAR, GAURAV
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 041763/0416 →
Cited By (1)
US 12,513,573