IP Library › Granted Patent US 10,338,834
Granted Patent B1
US 10,338,834 · App. 15/279,763 · Granted Jul 2, 2019

Application performance in replication environments

Inventors: Sumit Dighe (Maharashtra, IN); Shailesh Marathe (Maharashtra, IN)
Assignee: Veritas Technologies LLC
G06F3/0622G06F3/065G06F3/067G06F3/0659
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,338,834
App. No.
15/279,763
Granted
Jul 2, 2019
Kind
B1
Abstract

Disclosed herein are methods, systems, and processes to improve application performance in replication environments. A read command configured to cause a read operation to be performed on a unit of storage in a data volume is received. A state of a lock is determined. The state of the lock indicates whether a write operation is ongoing, and the write operation results in data being written to a storage replication log and to the data volume. The write operation is ongoing because writing the data to the storage replication log and to the data volume has not completed. In response to a determination that the write operation is not ongoing, the read operation is allowed to be performed on the unit of storage.

Claims (145)

1. A computer-implemented method comprising:

receiving a read command, wherein

the read command is configured to cause a read operation to be performed on a unit of storage, and

the unit of storage is comprised in a data volume;

determining a state of a lock, wherein

the state of the lock indicates whether a write operation is ongoing,

the write operation results in

writing data to a location in a storage replication log corresponding to the unit of storage, and

writing the data to a location in the data volume corresponding to the unit of storage, and

a determination that the write operation is not ongoing is made only if the writing the data to the location in the storage replication log, and the writing the data to the location in the data volume, have both been completed; and

in response to a determination that the state of the lock indicates that the write operation is not ongoing, allowing the read operation to be performed on the unit of storage.

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

assigning a current generation number to the data volume; and

receiving a first request to lock the data volume, wherein

the first request is received due to the write operation, and

the write operation is asynchronous.

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

upon receiving the first request,

assigning the current generation number to the first request,

setting a synchronous write acknowledgement flag on the data volume,

resetting a current generation input/output count of the data volume to zero, and

incrementing the current generation number by one.

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

switching the data volume from a first write acknowledgement mode to a second write acknowledgement mode; and

receiving a second request to lock the data volume to the read operation, wherein

the second request is received due to the write operation, and

the write operation is synchronous and ongoing by virtue of the data volume being switched to the second write acknowledgement mode.

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

upon receiving the second request and switching the data volume to the second write acknowledgement mode,

assigning the current generation number to the second request,

setting a no lock flag on the data volume to indicate that the read operation does not require the lock,

resetting the current generation input/output count of the data volume to zero, and

incrementing the current generation number by one; and

setting an asynchronous write acknowledgement flag on the data volume.

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

determining that the read operation or the write operation is associated with one or more computing devices operating in a cluster, wherein

the data volume is part of a plurality of data volumes, and

the plurality of data volumes are part of the cluster; and

setting a synchronous write acknowledgement flag on each of the plurality of data volumes;

resetting the current generation input/output count of the plurality of data volumes to zero;

incrementing the current generation number by one;

waiting for a previous generation input/output count to become zero; and

setting a no lock flag on each of the plurality of data volumes.

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

setting the no lock flag on the plurality of data volumes;

resetting the current generation input/output count of the plurality of data volumes to zero;

incrementing the current generation number by one; and

setting the asynchronous write acknowledgement flag on the plurality of data volumes.

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

receive a read command, wherein

the read command is configured to cause a read operation to be performed on a unit of storage, and

the unit of storage is comprised in a data volume;

determine a state of a lock, wherein

the state of the lock indicates whether a write operation is ongoing, and

the write operation results in

writing data to a location in a storage replication log corresponding to the unit of storage, and

writing the data to a location in the data volume corresponding to the unit of storage, and

a determination that the write operation is not ongoing is made only if the writing the data to the location in the storage replication log, and the writing the data to the location in the data volume, have both been completed; and

in response to a determination that the state of the lock indicates that the write operation is not ongoing, allow the read operation to be performed on the unit of storage.

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

assigning a current generation number to the data volume; and

receiving a first request to lock the data volume, wherein

the first request is received due to the write operation, and

the write operation is asynchronous.

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

upon receiving the first request,

assigning the current generation number to the first request,

setting a synchronous write acknowledgement flag on the data volume,

resetting a current generation input/output count of the data volume to zero, and

incrementing the current generation number by one.

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

switching the data volume from a first write acknowledgement mode to a second write acknowledgement mode; and

receiving a second request to lock the data volume to the read operation, wherein

the second request is received due to the write operation, and

the write operation is synchronous and ongoing by virtue of the data volume being switched to the second write acknowledgement mode.

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

upon receiving the second request and switching the data volume to the second write acknowledgement mode,

assigning the current generation number to the second request,

setting a no lock flag on the data volume to indicate that the read operation does not require the lock,

resetting the current generation input/output count of the data volume to zero, and

incrementing the current generation number by one; and

setting an asynchronous write acknowledgement flag on the data volume.

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

determining that the read operation or the write operation is associated with one or more computing devices operating in a cluster, wherein

the data volume is part of a plurality of data volumes, and

the plurality of data volumes are part of the cluster; and

setting a synchronous write acknowledgement flag on each of the plurality of data volumes;

resetting the current generation input/output count of the plurality of data volumes to zero;

incrementing the current generation number by one;

waiting for a previous generation input/output count to become zero; and

setting a no lock flag on each of the plurality of data volumes.

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

setting the no lock flag on the plurality of data volumes;

resetting the current generation input/output count of the plurality of data volumes to zero;

incrementing the current generation number by one; and

setting the asynchronous write acknowledgement flag on the plurality of data volumes.

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

receive a read command, wherein

the read command is configured to cause a read operation to be performed on a unit of storage, and

the unit of storage is comprised in a data volume,

determine a state of a lock, wherein

the state of the lock indicates whether a write operation is ongoing, and

the write operation results in

writing data to a location in a storage replication log corresponding to the unit of storage, and

writing the data to a location in the data volume corresponding to the unit of storage, and

a determination that the write operation is not ongoing is made only if the writing the data to the location in the storage replication log, and the writing the data to the location in the data volume, have both been completed, and

in response to a determination that the state of the lock indicates that the write operation is not ongoing, allow the read operation to be performed on the unit of storage.

16. The system of claim 15 , further comprising:

assigning a current generation number to the data volume; and

receiving a first request to lock the data volume, wherein

the first request is received due to the write operation, and

the write operation is asynchronous.

17. The system of claim 16 , further comprising:

upon receiving the first request,

assigning the current generation number to the first request,

setting a synchronous write acknowledgement flag on the data volume,

resetting a current generation input/output count of the data volume to zero, and

incrementing the current generation number by one.

18. The system of claim 17 , further comprising:

switching the data volume from a first write acknowledgement mode to a second write acknowledgement mode;

receiving a second request to lock the data volume to the read operation, wherein

the second request is received due to the write operation, and

the write operation is synchronous and ongoing by virtue of the data volume being switched to the second write acknowledgement mode;

upon receiving the second request and switching the data volume to the second write acknowledgement mode,

assigning the current generation number to the second request,

setting a no lock flag on the data volume to indicate that the read operation does not require the lock,

resetting the current generation input/output count of the data volume to zero, and

incrementing the current generation number by one; and

setting an asynchronous write acknowledgement flag on the data volume.

19. The system of claim 18 , further comprising:

determining that the read operation or the write operation is associated with one or more computing devices operating in a cluster, wherein

the data volume is part of a plurality of data volumes, and

the plurality of data volumes are part of the cluster; and

setting a synchronous write acknowledgement flag on each of the plurality of data volumes;

resetting the current generation input/output count of the plurality of data volumes to zero;

incrementing the current generation number by one;

waiting for a previous generation input/output count to become zero; and

setting a no lock flag on each of the plurality of data volumes.

20. The system of claim 19 , further comprising:

setting the no lock flag on the plurality of data volumes;

resetting the current generation input/output count of the plurality of data volumes to zero;

incrementing the current generation number by one; and

setting the asynchronous write acknowledgement flag on the plurality of data volumes.

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/0779 →
Cited By (1)
US 12,216,932