IP Library Granted Patent US 12,210,544
Granted Patent B1
US 12,210,544 · App. 17/152,095 · Granted Jan 28, 2025

Cloud replication based on adaptive quality of service

Inventor: Anish A. Vaidya (Pleasanton, CA)
Assignee: Veritas Technologies LLC
G06F16/27G06F9/45558G06F9/4881H04L67/1095G06F2009/45595
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 12,210,544
App. No.
17/152,095
Granted
Jan 28, 2025
Kind
B1
Abstract

Disclosed herein are methods, systems, and processes to perform cloud replication based on adaptive Quality of Service. A replication stream is monitored over a period of time. The replication stream includes write operations issued by an application, and is associated with preset parameters. Replication parameters applicable to the replication stream are determined. The replication parameters are configured to be used in a replication operation. The preset parameters and the replication parameters are stored.

Claims (45)

1. A method comprising:

measuring replication parameters of a replication stream, wherein the replication stream comprises write operations issued by a plurality of applications, respectively, and wherein the replication parameters comprise rates at which the plurality of applications, respectively, issue write operations;

aggregating data of the write operations into update sets corresponding to the plurality of applications, respectively;

determining a plurality of preset replication intervals assigned to the plurality of applications, respectively;

generating adjusted replication intervals for the plurality of applications, respectively, by increasing or decreasing replication intervals for the plurality of applications, respectively, based on changes in the rates at which the plurality of applications issue write operations;

calculating a first cost of replicating the aggregated data for a first application of the plurality of applications, to the target site via a network using a first adjusted replication interval for the first application;

calculating a second cost of replicating the aggregated data for the first application to the target site via the network using a first preset parameter of the plurality of preset parameters;

comparing the first and second costs;

if the first cost exceeds the second cost, replicating the aggregated data for the first application to the target site at the first preset replication interval;

if the second cost exceeds the first cost, replicating the aggregated data for the first application to the target site at the first adjusted replication interval.

2. The method of claim 1 wherein the first and second costs are measured in the same units of currency.

3. The method of claim 1 wherein the first and second costs are calculated using a cost of transmitting data via the network per unit of data.

4. The method of claim 1 wherein the first and second costs of transmitting the aggregated data via the network is calculated per unit of data.

5. The method of claim 1 , wherein

the replication stream is received from a plurality of virtual machines via I/O taps,

the plurality of virtual machines execute the plurality of applications, respectively;

each application of the plurality is assigned a workload priority of a plurality of workload priorities.

6. The method of claim 5 , wherein the preset replication intervals are based on the workload priorities, respectively, assigned to the plurality of applications, respectively.

7. A non-transitory computer readable storage medium comprising program instructions executable to:

measure replication parameters of a replication stream, wherein the replication stream comprises write operations issued by a plurality of applications, respectively, and wherein the replication parameters comprise rates at which the plurality of applications, respectively, issue write operations;

aggregate data of the write operations into update sets corresponding to the plurality of applications, respectively;

determine a plurality of preset replication intervals assigned to the plurality of applications, respectively;

generate adjusted replication intervals for the plurality of applications, respectively, by increasing or decreasing replication intervals for the plurality of applications, respectively, based on changes in the rates at which the plurality of applications issue write operations;

calculate a first cost of replicating the aggregated data for a first application of the plurality of applications, to the target site via a network using a first adjusted replication interval for the first application;

calculate a second cost of replicating the aggregated data for the first application to the target site via the network using a first preset parameter of the plurality of preset parameters;

compare the first and second costs;

if the first cost exceeds the second cost, replicate the aggregated data for the first application to the target site at the first preset replication interval;

if the second cost exceeds the first cost, replicate the aggregated data for the first application to the target site at the first adjusted replication interval.

8. The non-transitory computer readable storage medium of claim 7 , wherein the first and second costs are measured in the same units of currency.

9. The non-transitory computer readable storage medium of claim 7 , wherein the cost is calculated based on a cost of transmitting data via the network per unit of data.

10. The non-transitory computer readable storage medium of claim 7 , wherein the first and second costs are calculated using a cost of transmitting data via the network per unit of data.

11. A system comprising:

one or more processors; and

a memory coupled to the one or more processors, wherein the memory stores program instructions executable by the one or more processors to:

measure replication parameters of a replication stream, wherein the replication stream comprises write operations issued by a plurality of applications, respectively, and wherein the replication parameters comprise rates at which the plurality of applications, respectively, issue write operations;

aggregate data of the write operations into update sets corresponding to the plurality of applications, respectively;

determine a plurality of preset replication intervals assigned to the plurality of applications, respectively;

generate adjusted replication intervals for the plurality of applications, respectively, by increasing or decreasing replication intervals for the plurality of applications, respectively, based on changes in the rates at which the plurality of applications issue write operations;

calculate a first cost of replicating the aggregated data for a first application of the plurality of applications, to the target site via a network using a first adjusted replication interval for the first application;

calculate a second cost of replicating the aggregated data for the first application to the target site via the network using a first preset parameter of the plurality of preset parameters;

compare the first and second costs;

if the first cost exceeds the second cost, replicate the aggregated data for the first application to the target site at the first preset replication interval;

if the second cost exceeds the first cost, replicate the aggregated data for the first application to the target site at the first adjusted replication interval.

12. The system of claim 11 , wherein the first and second costs are measured in the same units of currency.

13. The system of claim 11 , wherein the first and second costs are calculated using a cost of transmitting data via the network per unit of data.

Assignments (8)
AMENDMENT NO. 1 TO PATENT SECURITY AGREEMENT Recorded Apr 8, 2025
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 070779/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 26, 2025
From: VERITAS TECHNOLOGIES LLC
To: COHESITY, INC.
Reel/Frame 070335/0013 →
RELEASE OF SECURITY INTEREST Recorded Dec 16, 2024
From: ACQUIOM AGENCY SERVICES LLC, AS COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069591/0510 →
RELEASE OF SECURITY INTEREST Recorded Dec 13, 2024
From: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 069577/0001 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Mar 7, 2022
From: VERITAS TECHNOLOGIES LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 059337/0159 →
PATENT SECURITY AGREEMENT SUPPLEMENT Recorded Feb 24, 2022
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A.
Reel/Frame 059247/0656 →
Continuity (1)
Continuation 15252487 · Aug 31, 2016
References Cited (31)
US 9100343B1 · Riordan · 2015 [cited by examiner]
US 9442748B2 · Burshan · 2016 [cited by examiner]
US 9465855B2 · Bourbonnais · 2016 [cited by examiner]
US 9965306B1 · Natanzon · 2018 [cited by examiner]
US 10120767B2 · Cherryholmes · 2018 [cited by examiner]
US 10185758B1 · Ayzenberg · 2019 [cited by examiner]
US 20080049775A1 · Morrill · 2008 [cited by examiner]
US 20080082591A1 · Ahal · 2008 [cited by examiner]
US 20080177963A1 · Rogers · 2008 [cited by examiner]
US 20100185583A1 · Berinde · 2010 [cited by examiner]
US 20110004586A1 · Cherryholmes · 2011 [cited by examiner]
US 20120078848A1 · Jennas, II · 2012 [cited by examiner]
US 20120137173A1 · Burshan · 2012 [cited by examiner]
US 20120239893A1 · Jennas, II · 2012 [cited by examiner]
US 20150081893A1 · Chadwell · 2015 [cited by examiner]
US 20150234617A1 · Li · 2015 [cited by examiner]
US 20150293817A1 · Subramanian · 2015 [cited by examiner]
US 20160026535A1 · Bhat · 2016 [cited by examiner]
US 20160048408A1 · Madhu · 2016 [cited by examiner]
US 20160048427A1 · Sasi · 2016 [cited by examiner]
US 20170010941A1 · Shimada · 2017 [cited by examiner]
US 20170103114A1 · Miller · 2017 [cited by examiner]
US 20170169087A1 · Kapadia · 2017 [cited by examiner]
US 20170220424A1 · Doshi · 2017 [cited by examiner]
US 20170329677A1 · Crofton · 2017 [cited by examiner]
US 20180060182A1 · Rao Kotha, Kotha et al. · 2018 [cited by examiner]
US 20180095839A1 · Binford · 2018 [cited by examiner]
US 20200034718A1 · Beedu · 2020 [cited by examiner]
US 20200192767A1 · Savino · 2020 [cited by examiner]
US 20220035714A1 · Schultz · 2022 [cited by examiner]
US 20220318264A1 · Jain · 2022 [cited by examiner]