IP Library Granted Patent US 7,509,567
Granted Patent B1
US 7,509,567 · App. 11/157,268 · Granted Mar 24, 2009

System and method for resolving data inconsistencies with a data majority

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,509,567
App. No.
11/157,268
Granted
Mar 24, 2009
Kind
B1
Abstract

A system and method for an election and data majority mechanism that solves problems such as bit flipping, mistracking, miscaching, and I/O status errors during real-time operations. Multiple copies of data are stored on various storage media of a data processing system. Errors that occur on the storage media or on other components of the data processing system are resolved by selecting the data with the highest frequency as the data majority. The data majority is propagated throughout the storage media to correct errors.

Claims (82)

1. A system comprising:

a read engine, wherein

said read engine is configured to be coupled to a storage device,

said storage device is configured to store a plurality of copies of data, and

said read engine is configured to read a first copy of said data, a second copy of said data, and a third copy of said data from said copies of said data;

a comparator, wherein

said comparator is coupled to said read engine, and

said comparator is configured to determine an occurrence of a data match between at least two of said first copy of data, said second copy of data, and said third copy of said data by virtue of being configured to compare said first copy of data, said second copy of data, and said third copy of said data to one another;

a majority engine, wherein

said majority engine is coupled to said comparator, and

said majority engine is configured to determine a data majority among said first copy of said data, said second copy of said data, and said third copy of said data based on said occurrence of said data match; and

a volume manager, wherein

said volume manager is configured to

if said data majority cannot be determined,

select a selected one of said copies of said data, and

disable copies of said data other than said selected one of said copies of said data.

2. The system of claim 1 , further comprising:

a storage device, wherein

said storage device is configured to store said copies of said data.

3. The system of claim 1 , further comprising:

a plurality of said storage devices, wherein

said storage devices comprise said storage device, and

each of said storage devices is configured to store a corresponding copy of said data from said copies of said data.

4. The system of claim 3 , further comprising:

a plurality of memory locations, wherein

each of said memory locations is configured to store data read from a corresponding one of said storage devices.

5. The system of claim 2 , wherein

said majority engine is further configured to determine said data majority using a highest frequency of said data match.

6. The system of claim 1 , further comprising:

a write engine, wherein

said write engine is coupled to said storage device,

said write engine is configured to maintain data consistency by virtue of being configured to overwrite a copy of said copies of said data with another copy of said copies of said data,

said copy of said copies of said data is not in said data majority, and

said another copy of said copies of said data is in said data majority.

7. The system of claim 1 , further comprising:

a write engine, wherein

said write engine is coupled to said storage device, and

said write engine is configured to store said copies of said data on said storage device by virtue of being configured to write said copies of said data to said storage device.

8. The system of claim 1 , wherein

said first copy of data, said second copy of data, and said third copy of said data are randomly selected from said copies of said data.

9. A method comprising:

resolving a data inconsistency in a data processing system, wherein

said resolving comprises determining a data majority, and

said determining said data majority comprises

reading a plurality of a plurality of copies of data stored in a storage device,

determining an occurrence of a data match by comparing said plurality of said copies of said data to one another,

if said data match has not been determined to have occurred,

reading a remaining copy of said copies of said data, and

determining said occurrence of said data match, wherein

 said determining said occurrence of said data match comprises comparing said plurality of said copies of said data to one another, and

 said remaining copy of said copies of said data is caused to be among said plurality of said copies of said data by said reading said remaining copy of said copies of said data, and

if said data majority cannot be determined,

selecting a selected one of said copies of said data, and

disabling copies of said data other than said selected one of said copies of said data.

10. The method of claim 9 , further comprising:

returning data from a memory location corresponding to said selected one of said copies of said data.

11. The method of claim 10 , further comprising:

returning an error condition, if said data majority cannot be determined.

12. The method of claim 10 , further comprising:

overwriting one of said copies of said data other than said selected one of said copies of said data with said selected one of said copies of said data.

13. The method of claim 10 , further comprising:

overwriting a corrupted one of said copies of said data with said data majority.

14. An apparatus comprising:

means for resolving a data inconsistency in a data processing system, wherein

said means for resolving comprises means for determining a data majority, and

said means for determining said data majority comprises

means for reading a plurality of a plurality of copies of data stored in a storage device,

means for determining an occurrence of a data match comprising means for comparing said plurality of said copies of said data to one another,

means, if said means for determining said occurrence of said data match has not determined said occurrence of said data match, for

reading a remaining copy of said copies of said data, and

determining said occurrence of said data match, wherein

 said means for determining said occurrence of said data match comprises means for comparing said plurality of said copies of said data to one another, and

 said remaining copy of said copies of said data is caused to be among said plurality of said copies of said data by said means for reading said remaining copy of said copies of said data, and

means, if said data majority cannot be determined, for

selecting a selected one of said copies of said data, and

disabling copies of said data other than said selected one of said copies of said data.

15. The apparatus of claim 14 , further comprising:

means for returning data from a memory location corresponding to said selected one of said copies of said data.

16. The apparatus of claim 15 , further comprising:

means for returning an error condition, if said data majority cannot be determined.

17. The apparatus of claim 15 , further comprising:

means for overwriting a corrupted one of said copies of said data with said data majority.

Assignments (10)
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 →
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 →