IP Library Granted Patent US 9,823,857
Granted Patent B1
US 9,823,857 · App. 14/671,092 · Granted Nov 21, 2017

Systems and methods for end-to-end quality of service control in distributed systems

Inventors: Niranjan Pendharkar (Pune, IN); Prasanna Wakhare (Pune, IN)
Assignee: Veritas Technologies LLC
G06F3/0613G06F3/065G06F3/067G06F3/0646G06F3/0653G06F3/0683G06F9/505
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 9,823,857
App. No.
14/671,092
Granted
Nov 21, 2017
Kind
B1
Abstract

A computer-implemented method for end-to-end quality of service control in distributed systems may include (1) identifying a plurality of computing systems, wherein each computing system (a) is coupled to a storage resource for the computing system, (b) hosts a plurality of applications that share the storage resource coupled to the computing system, (c) hosts a quality of service agent that limits throughput utilization of the storage resource by each of the plurality of applications, and (d) copies input/output data generated by the applications to a secondary computing system, (2) determining a throughput capacity of the secondary computing system, and (3) providing feedback to at least one quality of service agent hosted by at least one computing system to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system. Various other methods, systems, and computer-readable media are also disclosed.

Claims (47)

1. A computer-implemented method for end-to-end quality of service control in distributed systems, at least a portion of the method being performed by a computing device comprising at least one processor, the method comprising:

identifying a plurality of computing systems, wherein each computing system in the plurality of computing systems:

is coupled to a storage resource for the computing system, the storage resource having a limited throughput capacity;

hosts a plurality of applications that share the storage resource coupled to the computing system and that thereby consume the throughput capacity of the storage resource;

hosts a quality of service agent that limits throughput utilization of the storage resource by each of the plurality of applications to prevent overconsumption of the throughput capacity of the storage resource and to thereby maintain at least one specified throughput service level specified for at least one competing application within the plurality of applications that competes within the plurality of applications for throughput to the storage resource; and

copies input/output data generated by the plurality of applications to a secondary computing system, resulting in a separate copy of the input/output data being processed by the secondary computing system and thereby consuming a throughput capacity of the secondary computing system;

the method further comprising:

determining the throughput capacity of the secondary computing system, the throughput capacity of the secondary computing system being separate from the throughput capacity of the storage resource; and

providing feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system, and thereby reduce consumption of the throughput capacity of the storage resource, in response to determining the throughput capacity of the secondary computing system.

2. The computer-implemented method of claim 1 , wherein each computing system in the plurality of computing systems hosts a plurality of applications that share the storage resource coupled to the computing system by hosting a plurality of virtual machines coupled to a virtual storage appliance that provisions, for the plurality of virtual machines, virtual storage that relies on the storage resource.

3. The computer-implemented method of claim 1 , wherein each computing system in the plurality of computing systems copies the input/output data generated by the plurality of applications to the secondary computing system to offload at least one data protection operation from the computing system to the secondary computing system.

4. The computer-implemented method of claim 1 , wherein each computing system in the plurality of computing systems copies the input/output data generated by the plurality of applications to the secondary computing system by:

copying the input/output data to a writeback log;

episodically forwarding a queued portion of the writeback log to the secondary computing system.

5. The computer-implemented method of claim 1 , further comprising receiving, from each computing system within the plurality of computing systems to the secondary computing system, information indicating a demand for copying input/output data to the secondary computing system.

6. The computer-implemented method of claim 5 , further comprising determining that the throughput capacity of the secondary computing system is less than a collective demand for copying input/output data to the secondary computing system.

7. The computer-implemented method of claim 6 , wherein providing feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system is in response to determining that the throughput capacity of the secondary computing system is less than the collective demand.

8. The computer-implemented method of claim 6 , wherein the information indicating the demand projects an anticipated demand based on at least one observation of an application which generates the input/output data to be copied to the secondary computing system.

9. The computer-implemented method of claim 1 , further comprising receiving, from each computing system within the plurality of computing systems at the secondary computing system, information specifying a throughput service level for each application on the computing system.

10. The computer-implemented method of claim 9 , wherein providing feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system comprises providing, based on the information specifying the throughput service level for each application on the computing system, a maximum throughput allotment to the quality of service agent for the computing system that is sufficient to meet the throughput service level for each application on the computing system.

11. The computer-implemented method of claim 9 , wherein providing feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system comprises providing, based on the information specifying the throughput service level for each application on the computing system, a maximum throughput allotment to the quality of service agent for at least one selected application of the plurality of applications that is sufficient to meet the throughput service level for the selected application.

12. A system for end-to-end quality of service control in distributed systems, the system comprising:

an identification module, stored in memory, that identifies a plurality of computing systems, wherein each computing system in the plurality of computing systems:

is coupled to a storage resource for the computing system, the storage resource having a limited throughput capacity;

hosts a plurality of applications that share the storage resource coupled to the computing system and that thereby consume the throughput capacity of the storage resource;

hosts a quality of service agent that limits throughput utilization of the storage resource by each of the plurality of applications to prevent overconsumption of the throughput capacity of the storage resource and to thereby maintain at least one specified throughput service level specified for at least one competing application within the plurality of applications that competes within the plurality of applications for throughput to the storage resource; and

copies input/output data generated by the plurality of applications to a secondary computing system, resulting in a separate copy of the input/output data being processed by the secondary computing system and thereby consuming a throughput capacity of the secondary computing system;

a determination module, stored in memory, that determines the throughput capacity of the secondary computing system, the throughput capacity of the secondary computing system being separate from the throughput capacity of the storage resource;

a providing module, stored in memory, that provides feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system, and thereby reduce consumption of the throughput capacity of the storage resource, in response to determining the throughput capacity of the secondary computing system; and

at least one physical processor configured to execute the identification module, the determination module, and the providing module.

13. The system of claim 12 , wherein each computing system in the plurality of computing systems hosts a plurality of applications that share the storage resource coupled to the computing system by hosting a plurality of virtual machines coupled to a virtual storage appliance that provisions, for the plurality of virtual machines, virtual storage that relies on the storage resource.

14. The system of claim 12 , wherein each computing system in the plurality of computing systems copies the input/output data generated by the plurality of applications to the secondary computing system to offload at least one data protection operation from the computing system to the secondary computing system.

15. The system of claim 12 , wherein each computing system in the plurality of computing systems copies the input/output data generated by the plurality of applications to the secondary computing system by:

copying the input/output data to a writeback log;

episodically forwarding a queued portion of the writeback log to the secondary computing system.

16. The system of claim 12 , wherein the determination module further receives, from each computing system within the plurality of computing systems to the secondary computing system, information indicating a demand for copying input/output data to the secondary computing system.

17. The system of claim 16 , wherein the determination module further determines that the throughput capacity of the secondary computing system is less than a collective demand for copying input/output data to the secondary computing system.

18. The system of claim 17 , wherein the providing module provides feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system in response to determining that the throughput capacity of the secondary computing system is less than the collective demand.

19. The system of claim 17 , wherein the information indicating the demand projects an anticipated demand based on at least one observation of an application which generates the input/output data to be copied to the secondary computing system.

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:

identify a plurality of computing systems, wherein each computing system in the plurality of computing systems:

is coupled to a storage resource for the computing system, the storage resource having a limited throughput capacity;

hosts a plurality of applications that share the storage resource coupled to the computing system and that thereby consume the throughput capacity of the storage resource;

hosts a quality of service agent that limits throughput utilization of the storage resource by each of the plurality of applications to prevent overconsumption of the throughput capacity of the storage resource and to thereby maintain at least one specified throughput service level specified for at least one competing application within the plurality of applications that competes within the plurality of applications for throughput to the storage resource; and

copies input/output data generated by the plurality of applications to a secondary computing system, resulting in a separate copy of the input/output data being processed by the secondary computing system and thereby consuming a throughput capacity of the secondary computing system;

determine the throughput capacity of the secondary computing system, the throughput capacity of the secondary computing system being separate from the throughput capacity of the storage resource; and

provide feedback to at least one quality of service agent hosted by at least one computing system within the plurality of computing systems to further limit throughput utilization of at least one of a plurality of applications hosted by the computing system, and thereby reduce consumption of the throughput capacity of the storage resource, in response to determining the throughput capacity of the secondary computing system.

Assignments (16)
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 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC (F/K/A VERITAS US IP HOLDINGS LLC)
Reel/Frame 069712/0090 →
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 →
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 →
ASSIGNMENT OF SECURITY INTEREST IN PATENT COLLATERAL Recorded Nov 25, 2024
From: BANK OF AMERICA, N.A., AS ASSIGNOR
To: ACQUIOM AGENCY SERVICES LLC, AS ASSIGNEE
Reel/Frame 069440/0084 →
TERMINATION AND RELEASE OF SECURITY IN PATENTS AT R/F 037891/0726 Recorded Nov 30, 2020
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: VERITAS US IP HOLDINGS, LLC
Reel/Frame 054535/0814 →
SECURITY INTEREST Recorded Aug 20, 2020
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 054370/0134 →
MERGER Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038483/0203 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 037891/0001 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037693/0158 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 27, 2015
From: PENDHARKAR, NIRANJAN; WAKHARE, PRASANNA
To: SYMANTEC CORPORATION
Reel/Frame 035275/0084 →