IP Library Granted Patent US 10,216,416
Granted Patent B1
US 10,216,416 · App. 15/279,743 · Granted Feb 26, 2019

Application performance in replication environments

Inventors: Sumit Dighe (Maharashtra, IN); Shailesh Marathe (Maharashtra, IN)
Assignee: Veritas Technologies LLC
G06F3/0605G06F3/065G06F3/067G06F3/0613G06F3/0634G06F3/0644G06F3/0653
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,216,416
App. No.
15/279,743
Granted
Feb 26, 2019
Kind
B1
Abstract

Described herein are methods, systems, and processes to improve application performance in replication environments. A first write acknowledgement mode associated with a data volume is identified. The first write acknowledgement mode is one of multiple write acknowledgement modes. The write acknowledgement modes include a synchronous write acknowledgement mode and an asynchronous write acknowledgement mode. The data volume is switched from the first write acknowledgement mode to a second write acknowledgement mode that is part of the write acknowledgement modes, and is the synchronous write acknowledgement mode or the asynchronous write acknowledgement mode.

Claims (108)

1. A computer-implemented method comprising:

identifying a first write acknowledgement mode associated with an input/output (I/O) stream, wherein

the first write acknowledgement mode is associated with a data volume,

the I/O stream comprises a plurality of I/O operations,

the I/O stream is directed to the data volume by an application,

the first write acknowledgement mode is one of a plurality of write acknowledgement modes, and

the plurality of write acknowledgement modes comprise at least a synchronous write acknowledgement mode and an asynchronous write acknowledgement mode; and

switching the data volume from the first write acknowledgement mode to a second write acknowledgement mode during processing of the I/O stream, wherein

the switching is performed independently of a completion status of ongoing I/O operations of the I/O stream, such that no quiescing of subsequent I/O operations occurs as a result of the switching,

the second write acknowledgement mode is another of the plurality of write acknowledgement modes, and

the second write acknowledgement mode is the synchronous write acknowledgement mode or the asynchronous write acknowledgement mode.

2. The computer-implemented method of claim 1 , further comprising:

configuring a plurality of data volumes to acknowledge one or more asynchronous write operations;

determining an asynchronous input/output (I/O) throughput associated with the application; and

configuring the plurality of data volumes to acknowledge one or more synchronous write operations, based on the asynchronous I/O throughput.

3. The computer-implemented method of claim 2 , further comprising:

generating a set of asynchronous I/O throughput samples associated with the application by monitoring a first set of I/Os issued by the application during a first fixed time interval; and

determining the asynchronous I/O throughput associated with the application using the set of asynchronous I/O throughput samples.

4. The computer-implemented method of claim 3 , further comprising:

generating a set of synchronous I/O throughput samples associated with the application by monitoring a second set of I/Os issued by the application during a second fixed time interval;

determining a synchronous I/O throughput associated with the application using the set of synchronous I/O throughput samples; and

comparing the asynchronous I/O throughput and the synchronous I/O throughput.

5. The computer-implemented method of claim 4 , further comprising:

based on the comparing, configuring the data volume to acknowledge the one or more asynchronous write operations or the one or more synchronous write operations.

6. The computer-implemented method of claim 5 , wherein

the one or more synchronous write operations and the one or more asynchronous write operations are performed to a storage replication log, and

the storage replication log is shared between the plurality of data volumes.

7. The computer-implemented method of claim 4 , further comprising:

based on the comparing,

configuring a first data volume of the plurality of data volumes to acknowledge the one or more asynchronous write operations, and

configuring a second data volume of the plurality of data volumes to acknowledge the one or more synchronous write operations.

8. The computer-implemented method of claim 2 , further comprising:

re-configuring the plurality of data volumes to acknowledge the one or more asynchronous write operations;

accessing a write tracking log;

monitoring a plurality of write operations pending in the write tracking log; and

based on the monitoring, throttling one or more subsequent write operations of the application.

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

identify a first write acknowledgement mode associated with an input/output (I/O) stream, wherein

the first write acknowledgement mode is associated with a data volume,

the I/O stream comprises a plurality of I/O operations,

the I/O stream is directed to the data volume by an application,

the first write acknowledgement mode is one of a plurality of write acknowledgement modes, and

the plurality of write acknowledgement modes comprise at least a synchronous write acknowledgement mode and an asynchronous write acknowledgement mode; and

switch the data volume from the first write acknowledgement mode to a second write acknowledgement mode during processing of the I/O stream, wherein

the switch is performed independently of a completion status of ongoing I/O operations of the I/O stream, such that no quiescing of subsequent I/O operations occurs as a result of the switching,

the second write acknowledgement mode is another of the plurality of write acknowledgement modes, and

the second write acknowledgement mode is the synchronous write acknowledgement mode or the asynchronous write acknowledgement mode.

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

configuring a plurality of data volumes to acknowledge one or more asynchronous write operations;

determining an asynchronous input/output (I/O) throughput associated with the application; and

configuring the plurality of data volumes to acknowledge one or more synchronous write operations, based on the asynchronous I/O throughput.

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

generating a set of asynchronous I/O throughput samples associated with the application by monitoring a first set of I/Os issued by the application during a first fixed time interval;

determining the asynchronous I/O throughput associated with the application using the set of asynchronous I/O throughput samples;

generating a set of synchronous I/O throughput samples associated with the application by monitoring a second set of I/Os issued by the application during a second fixed time interval;

determining a synchronous I/O throughput associated with the application using the set of synchronous I/O throughput samples; and

comparing the asynchronous I/O throughput and the synchronous I/O throughput.

12. The non-transitory computer readable storage medium of claim 11 , further comprising:

based on the comparing, configuring the data volume to acknowledge the one or more asynchronous write operations or the one or more synchronous write operations, wherein

the one or more synchronous write operations and the one or more asynchronous write operations are performed to a storage replication log, and

the storage replication log is shared between the plurality of data volumes.

13. The non-transitory computer readable storage medium of claim 11 , further comprising:

based on the comparing,

configuring a first data volume of the plurality of data volumes to acknowledge the one or more asynchronous write operations, and

configuring a second data volume of the plurality of data volumes to acknowledge the one or more synchronous write operations.

14. The non-transitory computer readable storage medium of claim 10 , further comprising:

re-configuring the plurality of data volumes to acknowledge the one or more asynchronous write operations;

accessing a write tracking log;

monitoring a plurality of write operations pending in the write tracking log; and

based on the monitoring,

throttling one or more subsequent write operations of the application.

15. 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:

identify a first write acknowledgement mode associated with an input/output (I/O) stream, wherein

the first write acknowledgement mode is associated with a data volume,

the I/O stream comprises a plurality of I/O operations,

the I/O stream is directed to the data volume by an application,

the first write acknowledgement mode is one of a plurality of write acknowledgement modes, and

the plurality of write acknowledgement modes comprise at least a synchronous write acknowledgement mode and an asynchronous write acknowledgement mode; and

switch the data volume from the first write acknowledgement mode to a second write acknowledgement mode during processing of the I/O stream, wherein

the switching is performed independently of a completion status of ongoing I/O operations of the I/O stream, such that no quiescing of subsequent I/O operations occurs as a result of the switch,

the second write acknowledgement mode is another of the plurality of write acknowledgement modes, and

the second write acknowledgement mode is the synchronous write acknowledgement mode or the asynchronous write acknowledgement mode.

16. The system of claim 15 , further comprising:

configuring a plurality of data volumes to acknowledge one or more asynchronous write operations;

determining an asynchronous input/output (I/O) throughput associated with the application; and

configuring the plurality of data volumes to acknowledge one or more synchronous write operations, based on the asynchronous I/O throughput.

17. The system of claim 16 , further comprising:

generating a set of asynchronous I/O throughput samples associated with the application by monitoring a first set of I/Os issued by the application during a first fixed time interval;

determining the asynchronous I/O throughput associated with the application using the set of asynchronous I/O throughput samples;

generating a set of synchronous I/O throughput samples associated with the application by monitoring a second set of I/Os issued by the application during a second fixed time interval;

determining a synchronous I/O throughput associated with the application using the set of synchronous I/O throughput samples; and

comparing the asynchronous I/O throughput and the synchronous I/O throughput.

18. The system of claim 17 , further comprising:

based on the comparing, configuring the data volume to acknowledge the one or more asynchronous write operations or the one or more synchronous write operations, wherein

the one or more synchronous write operations and the one or more asynchronous write operations are performed to a storage replication log, and

the storage replication log is shared between the plurality of data volumes.

19. The system of claim 17 , further comprising:

based on the comparing,

configuring a first data volume of the plurality of data volumes to acknowledge the one or more asynchronous write operations, and

configuring a second data volume of the plurality of data volumes to acknowledge the one or more synchronous write operations.

20. The system of claim 16 , further comprising:

re-configuring the plurality of data volumes to acknowledge the one or more asynchronous write operations;

accessing a write tracking log;

monitoring a plurality of write operations pending in the write tracking log; and

based on the monitoring,

throttling one or more subsequent write operations of the application.

Assignments (10)
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 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 069632/0613 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
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 Recorded Nov 23, 2016
From: VERITAS TECHNOLOGIES LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040679/0466 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 19, 2016
From: DIGHE, SUMIT; MARATHE, SHAILESH
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 040059/0611 →