IP Library Granted Patent US 7,177,993
Granted Patent B1
US 7,177,993 · App. 10/742,129 · Granted Feb 13, 2007

Method of detection of data corruption in mirrored storage

Assignee: Veritas Operating Corporation
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 7,177,993
App. No.
10/742,129
Granted
Feb 13, 2007
Kind
B1
Abstract

A first read request is received from a computer system. Data from one mirror of a data volume is returned to the computer system in response to receiving the first read request. The computer system may check the returned data to determine whether it is corrupted. If corrupted, the computer system sends a second read request for the same data. Rather than returning the same corrupted data stored in the one mirror, a copy of the requested data is returned from an alternate mirror of the data volume.

Claims (36)

1. A method comprising:

receiving a first read request, wherein the first read request is received from a computer system;

reading data from a mirror of a data volume in response to receiving the first read request;

receiving a second read request, wherein the second read request is received from the computer system, wherein the second read request is received subsequent to the first read request, and wherein the first and second read requests are for the same data;

reading data stored in an alternate mirror of the data volume in response to receiving the second read request.

2. The method of claim 1 further comprising:

comparing an identification of data sought by the first read request with data identifications stored in a searchable data structure that stores a history of read requests in memory;

wherein data is read from the mirror of the data volume in response to determining that the identification of data sought by the first read request is not stored in the history of read requests.

3. The method of claim 2 further comprising creating a new entry in the history of read requests, wherein the entry comprises the identification of data sought by the first read request, the time of the read request, and a list of mirrors from which the data has been returned.

4. The method of claim 3 further comprising comparing the identification of data sought by the second read request with data identifications stored in the history of read requests.

5. The method of claim 4 further comprising identifying a mirror that has not yet been marked as read in the history of read requests.

6. The method of claim 5 further comprising reading the identified mirror and adding its identity to the list of read mirrors in the history of reads entry corresponding to the identification of data and updating the timestamp on the history entry to the time of the new read.

7. The method of claim 1 further comprising:

the computer system processing the data read from the mirror of the data volume;

the computer system generating the second read request in response to determining that the data read from the mirror of the data volume is corrupted.

8. The method of claim 3 wherein data is read from the alternate mirror only if a current time is within a predetermined amount of time of a time stamp.

9. A computer readable medium comprising instructions executable by a first computer system, wherein the first computer system performs a method in response to executing the instructions, the method comprising:

receiving a first read request, wherein the first read request is received from a second computer system;

reading data from a mirror of a data volume in response to receiving the first read request;

receiving a second read request, wherein the second read request is received from the second computer system, wherein the second read request is received subsequent to the first read request, and wherein the first and second read requests are for the same data;

reading data stored in an alternate mirror of the data volume in response to receiving the second read request.

10. The computer readable medium of claim 9 wherein the method further comprises:

comparing an identification of data sought by the first read request with data identifications stored in a searchable data structure that stores a history of read requests in memory;

wherein data is read from the mirror of the data volume in response to determining that the identification of data sought by the first read request is not stored in the history of read requests.

11. The computer readable medium of claim 10 wherein the method further comprises comprising creating a new entry in the history of read requests, wherein the entry comprises the identification of data sought by the first read request, the time of the read request, and a list of mirrors from which the data has been returned.

12. The computer readable medium of claim 10 wherein the method further comprises comparing the identification of data sought by the second read request with data identifications stored in the history of read requests.

13. The computer readable medium of claim 12 wherein the method further comprises identifying a mirror that has not yet been marked as read in the corresponding entry in the history of read requests.

14. The computer readable medium of claim 12 wherein the method further comprises reading the identified mirror and adding its identity to the list of read mirrors in the entry in the history of read requests corresponding to the identification of data and updating the timestamp on the history entry to the time of the new read.

15. The computer readable medium of claim 9 wherein the method further comprises comparing time T 1 with time T 2 , wherein time T 1 is the time when the first request was received, and wherein time T 2 is the time when the second request was received.

16. The computer readable medium of claim 15 wherein the method further comprises reading the data stored in the mirrored copy in response to receiving the second request only if time T 2 occurs within a predetermined amount of time after T 1 .

17. A data processing system comprising;

a first computer system coupled to a memory system, wherein the memory system stores a mirrored data volume, wherein the first computer system comprises a memory for storing instructions executable by the first computer system, wherein the first computer system implements a method in response to executing the instructions, the method comprising:

receiving a first read request, wherein the first read request is received from a second computer system;

reading data from a first mirror of the mirrored data volume in response to receiving the first read request;

receiving a second read request, wherein the second read request is received from the second computer system, wherein the second read request is received subsequent to the first read request, and wherein the first and second read requests are for the same data;

reading data stored in a second mirror of the mirrored data volume in response to receiving the second read request.

Assignments (15)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 7, 2025
From: COHESITY, INC.
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 072830/0475 →
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 (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 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 →
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 AND CHANGE OF NAME Recorded Apr 18, 2016
From: VERITAS US IP HOLDINGS LLC; VERITAS TECHNOLOGIES LLC
To: VERITAS TECHNOLOGIES LLC
Reel/Frame 038455/0752 →
SECURITY INTEREST Recorded Feb 23, 2016
From: VERITAS US IP HOLDINGS LLC
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 037891/0726 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 4, 2016
From: SYMANTEC CORPORATION
To: VERITAS US IP HOLDINGS LLC
Reel/Frame 037697/0412 →
CHANGE OF NAME Recorded Oct 1, 2007
From: VERITAS OPERATING CORPORATION
To: SYMANTEC OPERATING CORPORATION
Reel/Frame 019899/0213 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 19, 2003
From: KISELEV, OLEG; KARR, RONALD S.
To: VERITAS OPERATING CORPORATION
Reel/Frame 014837/0758 →
Continuity (1)
Continuation In Part 1061060400 · Jul 1, 2003