IP Library Granted Patent US 11,099,752
Granted Patent B1
US 11,099,752 · App. 16/458,255 · Granted Aug 24, 2021

Application performance in replication environments

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,099,752
App. No.
16/458,255
Filed
Jul 1, 2019
Granted
Aug 24, 2021
Kind
B1
Art Unit
2138
USPC
711/163
Abstract

Disclosed herein are methods, systems, and processes to improve application performance in replication environments. In one embodiment, first application input/output (I/O) throughput and second application I/O throughput are associated with a data volume and are both sampled, with the first application I/O throughput being sampled while the data volume is set to an asynchronous write acknowledgement mode and the second application I/O throughput being sampled while the data volume is set to a synchronous write acknowledgement mode. A determination is made as to whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application I/O throughput for the data volume. The data volume is then set to a preferred write acknowledgement mode that is selected, based on a result of the determining, from the asynchronous write acknowledgement mode and the synchronous write acknowledgement mode, and in certain embodiments, a mixed write acknowledgement mode.

Claims (125)

1. A computer-implemented method comprising:

sampling a first application input/output throughput associated with one or more data volumes of a replicated volume group, wherein

the replicated volume group comprises a plurality of data volumes,

the first application input/output throughput represents a first one or more input/output operations that comprise one or more write operations,

each of the one or more write operations is performed on the one or more data volumes and a write tracking log,

the plurality of data volumes share the write tracking log, and

the sampling the first application input/output throughput is performed while the plurality of data volumes are set to an asynchronous write acknowledgement mode;

sampling a second application input/output throughput associated with the one or more data volumes of the replicated volume group, wherein

the second application input/output throughput represents a second one or more input/output operations that comprise another one or more write operations,

each of the another one or more write operations of the second one or more input/output operations are performed on the one or more data volumes and the write tracking log, and

the sampling the second application input/output throughput is performed while the plurality of data volumes are set to a synchronous write acknowledgement mode;

determining whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application input/output throughput for the one or more data volumes; and

setting each data volume of the one or more data volumes to a preferred write acknowledgement mode, wherein

the preferred write acknowledgement mode is selected based on a result of the determining,

the preferred write acknowledgement mode is selected from a plurality of write acknowledgement modes that comprises the asynchronous write acknowledgement mode and the synchronous write acknowledgement mode, and

each data volume of the plurality of data volumes is individually set to one of the plurality of write acknowledgement modes.

2. The computer-implemented method of claim 1 , wherein

the sampling the first application input/output throughput while the one or more data volumes are set to the asynchronous write acknowledgement mode is performed before sampling the second application input/output throughput while the one or more data volumes are set to the synchronous write acknowledgement mode.

3. The computer-implemented method of claim 1 , wherein

the sampling the second application input/output throughput while the one or more data volumes are set to the synchronous write acknowledgement mode is performed before sampling the first application input/output throughput while the one or more data volumes are set to the asynchronous write acknowledgement mode.

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

setting the one or more data volumes to a mixed write acknowledgement mode; and

sampling a third application input/output throughput associated with the one or more data volumes, wherein

the sampling the third application input/output throughput is performed while the one or more data volumes are set to the mixed write acknowledgement mode.

5. The computer-implemented method of claim 4 , wherein the determining further comprises:

determining a mixed write acknowledgement mode input/output throughput for the one or more data volumes; and

determining whether the mixed write acknowledgement mode input/output throughput is greater than the first application input/output throughput and the second application input/output throughput, wherein

the plurality of write acknowledgement modes further comprises the mixed write acknowledgement mode.

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

accessing the write tracking log;

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

based, at least in part, on the monitoring, determining whether a current number of pending write operations exceeds a maximum number of pending write operations; and

in response to a determination that the current number of pending write operations exceeds the maximum number of pending write operations, throttling one or more subsequent write operations.

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

subsequent to setting the one or more data volumes to the preferred write acknowledgement mode,

sampling a fourth application input/output throughput associated with the one or more data volumes while the one or more data volumes are set to the asynchronous write acknowledgement mode,

sampling a fifth application input/output throughput associated with the one or more data volumes while the one or more data volumes are set to the synchronous write acknowledgement mode,

determining whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application input/output throughput for the one or more data volumes, and

setting the one or more data volumes to the preferred write acknowledgement mode, wherein

the preferred write acknowledgement mode is selected based on a result of the determining, and

the first application input/output throughput and the second application input/output throughput are generated by an application.

8. A non-transitory computer readable storage medium comprising program instructions executable to perform a method comprising:

sampling a first application input/output throughput associated with one or more data volumes of a replicated volume group, wherein

the replicated volume group comprises a plurality of data volumes,

the first application input/output throughput represents a first one or more input/output operations that comprise one or more write operations,

each of the one or more write operations is performed on the one or more data volumes and a write tracking log,

the plurality of data volumes share the write tracking log, and

the sampling the first application input/output throughput is performed while the plurality of data volumes are set to an asynchronous write acknowledgement mode;

sampling a second application input/output throughput associated with the one or more data volumes of the replicated volume group, wherein

the second application input/output throughput represents a second one or more input/output operations that comprise another one or more write operations,

each of the another one or more write operations of the second one or more input/output operations are performed on the one or more data volumes and the write tracking log, and

the sampling the second application input/output throughput is performed while the plurality of data volumes are set to a synchronous write acknowledgement mode;

determining whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application input/output throughput for the one or more data volumes; and

setting each data volume of the one or more data volumes to a preferred write acknowledgement mode, wherein

the preferred write acknowledgement mode is selected based on a result of the determining,

the preferred write acknowledgement mode is selected from a plurality of write acknowledgement modes that comprises the asynchronous write acknowledgement mode and the synchronous write acknowledgement mode, and

the each data volume of the plurality of data volumes is individually set to one of the plurality of write acknowledgement modes.

9. The non-transitory computer readable storage medium of claim 8 , wherein the method further comprises:

the sampling the first application input/output throughput while the one or more data volumes are set to the asynchronous write acknowledgement mode is performed before sampling the second application input/output throughput while the one or more data volumes are set to the synchronous write acknowledgement mode.

10. The non-transitory computer readable storage medium of claim 8 , wherein the method further comprises:

the sampling the second application input/output throughput while the one or more data volumes are set to the synchronous write acknowledgement mode is performed before sampling the first application input/output throughput while the one or more data volumes are set to the asynchronous write acknowledgement mode.

11. The non-transitory computer readable storage medium of claim 8 , wherein the method further comprises:

setting the one or more data volumes to a mixed write acknowledgement mode; and

sampling a third application input/output throughput associated with the one or more data volumes, wherein

the sampling the third application input/output throughput is performed while the one or more data volumes are set to the mixed write acknowledgement mode.

12. The non-transitory computer readable storage medium of claim 11 , wherein the determining further comprises:

determining a mixed write acknowledgement mode input/output throughput for the one or more data volumes; and

determining whether the mixed write acknowledgement mode input/output throughput is greater than the first application input/output throughput and the second application input/output throughput, wherein

the plurality of write acknowledgement modes further comprises the mixed write acknowledgement mode.

13. The non-transitory computer readable storage medium of claim 8 , wherein the method further comprises:

accessing the write tracking log;

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

based, at least in part, on the monitoring, determining whether a current number of pending write operations exceeds a maximum number of pending write operations; and

in response to a determination that the current number of pending write operations exceeds the maximum number of pending write operations, throttling one or more subsequent write operations.

14. The non-transitory computer readable storage medium of claim 8 , wherein the method further comprises:

subsequent to setting the one or more data volumes to the preferred write acknowledgement mode,

sampling a fourth application input/output throughput associated with the one or more data volumes while the one or more data volumes are set to the asynchronous write acknowledgement mode,

sampling a fifth application input/output throughput associated with the one or more data volumes while the one or more data volumes are set to the synchronous write acknowledgement mode,

determining whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application input/output throughput for the one or more data volumes, and

setting the one or more data volumes to the preferred write acknowledgement mode, wherein

the preferred write acknowledgement mode is selected based on a result of the determining, and

the first application input/output throughput and the second application input/output throughput are generated by an 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 perform a method comprising

sampling a first application input/output throughput associated with one or more data volumes of a replicated volume group, wherein

the replicated volume group comprises a plurality of data volumes,

the first application input/output throughput represents a first one or more input/output operations that comprise one or more write operations,

each of the one or more write operations is performed on the one or more data volumes and a write tracking log,

the plurality of data volumes share the write tracking log, and

the sampling the first application input/output throughput is performed while the plurality of data volumes are set to an asynchronous write acknowledgement mode;

sampling a second application input/output throughput associated with the one or more data volumes of the replicated volume group, wherein

the second application input/output throughput represents a second one or more input/output operations that comprise another one or more write operations,

each of the another one or more write operations of the second one or more input/output operations are performed on the one or more data volumes and the write tracking log, and

the sampling the second application input/output throughput is performed while the plurality of data volumes are set to a synchronous write acknowledgement mode;

determining whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application input/output throughput for the one or more data volumes; and

setting each data volume of the one or more data volumes to a preferred write acknowledgement mode, wherein

the preferred write acknowledgement mode is selected based on a result of the determining,

the preferred write acknowledgement mode is selected from a plurality of write acknowledgement modes that comprises the asynchronous write acknowledgement mode and the synchronous write acknowledgement mode, and

each data volume of the plurality of data volumes is individually set to one of the plurality of write acknowledgement modes.

16. The system of claim 15 , wherein the method further comprises:

the sampling the first application input/output throughput while the one or more data volumes are set to the asynchronous write acknowledgement mode is performed before sampling the second application input/output throughput while the one or more data volumes are set to the synchronous write acknowledgement mode.

17. The system of claim 15 , wherein the method further comprises:

the sampling the second application input/output throughput while the one or more data volumes are set to the synchronous write acknowledgement mode is performed before sampling the first application input/output throughput while the one or more data volumes are set to the asynchronous write acknowledgement mode.

18. The system of claim 15 , wherein the method further comprises:

setting the one or more data volumes to a mixed write acknowledgement mode;

sampling a third application input/output throughput associated with the one or more data volumes, wherein

the sampling the third application input/output throughput is performed while the one or more data volumes are set to the mixed write acknowledgement mode; and

the determining further comprises

determining a mixed write acknowledgement mode input/output throughput for the one or more data volumes, and

determining whether the mixed write acknowledgement mode input/output throughput is greater than the first application input/output throughput and the second application input/output throughput, wherein

the plurality of write acknowledgement modes further comprises the mixed write acknowledgement mode.

19. The system of claim 15 , wherein the method further comprises:

accessing the write tracking log;

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

based, at least in part, on the monitoring, determining whether a current number of pending write operations exceeds a maximum number of pending write operations; and

in response to a determination that the current number of pending write operations exceeds the maximum number of pending write operations, throttling one or more subsequent write operations.

20. The system of claim 15 , wherein the method further comprises:

subsequent to setting the one or more data volumes to the preferred write acknowledgement mode,

sampling a fourth application input/output throughput associated with the one or more data volumes while the one or more data volumes are set to the asynchronous write acknowledgement mode,

sampling a fifth application input/output throughput associated with the one or more data volumes while the one or more data volumes are set to the synchronous write acknowledgement mode,

determining whether the asynchronous write acknowledgement mode or the synchronous write acknowledgement mode provides a higher application input/output throughput for the one or more data volumes, and

setting the one or more data volumes to the preferred write acknowledgement mode, wherein

the preferred write acknowledgement mode is selected based on a result of the determining, and

the first application input/output throughput and the second application input/output throughput are generated by an application.