IP Library Granted Patent US 6,993,523
Granted Patent B1
US 6,993,523 · App. 09/730,988 · Granted Jan 31, 2006

System and method for maintaining and recovering data consistency in a data base page

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 6,993,523
App. No.
09/730,988
Granted
Jan 31, 2006
Kind
B1
Abstract

The present invention is a system and method that facilitates consistency maintenance and recovery from a system or process crash with valid data. A data consistency maintenance and recovery system and method of the present invention utilizes a dual page configuration and locking process to store and track data. A primary page is utilized as the primary data storage location and a mirror page operates as copy of the primary page except during certain stages of data manipulation (e.g., a write operation). In one embodiment of the present invention, a process can not perform a read operation if the page is locked or a write operation if the process did not lock the page. Read operations read information from unlocked primary pages. Write operations access, lock and update a mirror page, then access, lock and update a primary page. Page accesses are tracked (e.g., counted). Then a write process unlocks and syncs the primary page to disk as well as the mirror page. A page with consistent data is copied to a page with inconsistent data during a process system crash recovery. In one embodiment of the present invention, a primary page is considered consistent if a write operation has not accessed the primary page to begin a write process, otherwise data on a mirror page is considered consistent. In one embodiment of the present invention data being manipulated (e.g., change by a write operation) is stored on a single page.

Claims (47)

1. A computer implemented data consistency maintenance method comprising the steps of:

attempting to acquire a genlock on a mirror page during a write access request operation;

locking said genlock on said mirror page;

updating data on said mirror page;

syncing said mirror page to backing store;

acquiring a genlock on a primary page associated with said mirror page;

locking said genlock on said primary page;

performing an update of data on said primary page;

syncing said primary page to backing store;

preventing read operations and write operations of other processes from accessing said mirror page and said primary page while locked;

unlocking said genlock; and

re-syncing said mirror page and said primary page.

2. A data consistency maintenance method of claim 1 further comprising the steps of keeping data included in said mirror page and data included in said associated primary page in lockstep except during a write operation.

3. A data consistency maintenance method of claim 1 further comprising the step of granting an attempt to acquire a genlock if said genlock is unlocked.

4. A data consistency maintenance method of claim 1 further comprising the steps of:

retrieving a mirror page from a database; and

mapping said mirror page into a local memory if not already stored in said local memory.

5. A data constancy maintenance method of claim 1 further comprising the steps of:

utilizing the lowest order bit of a write counter value to function as a genlock; and

incrementing said write counter value each time a write access is performed.

6. A data constancy maintenance method of claim 1 wherein locking said genlock on said mirror page and said genlock on said primary page provides an indication that said mirror page and said primary page are being accessed by a process performing a write operation.

7. A computer implemented consistency recovery method for recovering consistency after a process crash, comprising the steps of:

establishing a write counter value for a primary page and a write counter value for an associated mirror page, wherein a write counter value represents whether changes have occurred to a page;

comparing said write counter value of said primary page to said write counter value of said associated mirror page;

determining whether said primary page or said associated mirror page includes valid data;

copying a consistent page to an inconsistent page; and

resolving genlock status.

8. A computer implemented consistency recovery method of claim 7 further comprising the step of allowing a write to either complete or roll back if a process or system crash occurs while write operations are performed.

9. A computer implemented consistency recovery method of claim 7 wherein both said primary page and said associated mirror page are consistent if said write counter value of said primary page is equal to said write counter value of said associated mirror page and said primary page and said associated mirror page are both unlocked.

10. A computer implemented consistency recovery method of claim 7 wherein said primary page is consistent if said write counter value of said primary page is less than a write counter value of said associated mirror page and said primary page is unlocked and said associated mirror page is locked.

11. A computer implemented consistency recovery method of claim 7 wherein said associated mirror page is consistent if said write counter value of said primary page is equal to said write counter value of said associated mirror page and said primary page and said associated mirror page are locked.

12. A computer implemented consistency recovery method of claim 7 wherein said associated mirror page is consistent if said write counter value of said primary page is equal to write counter value of said associated mirror page and said primary page is unlocked and said associated mirror page is locked.

13. A computer implemented consistency recovery method of claim 7 wherein said primary page and said associated mirror page are considered to be in an invalid state if said primary page is locked and said associated mirror page is unlocked.

14. A computer implemented consistency recovery method of claim 13 wherein data included in said associated mirror page is considered the valid information.

15. A data consistency maintenance and recovery computer system comprising:

a bus for providing a communication path between components of the computer system;

a central processing unit (CPU) coupled to said bus, said CPU including a first process and a second process that perform a write operation and a read operation;

a database coupled to said bus, said database stores data on a computer readable medium, said data arranged on a primary page and maintained in an associate mirror page that is a copy comprising said data included in said primary page except when one of said first process and said second process perform a write operation, wherein said associated mirror page is written to before said primary page during said write operation, wherein said primary page includes a first write counter value and said mirror page includes a second write counter value, wherein a write counter value represents whether changes have occurred to a page; and

a locking system that creates and manages a lock associated with the primary page and the associated mirror page to determine whether a write operation or a read operation should be permitted to occur.

16. The data consistency maintenance and recovery computer system of claim 15 wherein said locking system compares a status of said lock on said primary page to a status of said lock of associated said mirror page and compares said first write counter value of said primary page to said second write counter value of said mirror page to determine whether said primary page or said mirror page are consistent after recovering from a process or system crash.

17. A data consistency maintenance and recovery computer system comprising:

a bus for providing a communication path between components of the computer system;

a central processing unit (CPU) coupled to said bus, said CPU including a first process and a second process that perform a write operation and a read operation;

a database coupled to said bus, said database stores data on a computer readable medium, said data arranged on a primary page and maintained in an associate mirror page that is a copy comprising said data included in said primary page except when one of said first process and said second process perform a write operation, wherein said associated mirror page is written to before said primary page during said write operation, and

a locking system that creates and manages a lock associated with the primary page and the associated mirror page to determine whether a write operation or a read operation should be permitted to occur, wherein said lock is the lowest order bit of a write counter value.

18. The data consistency maintenance and recovery computer system of claim 17 wherein said lock is locked and unlocked by incrementing said write counter value.

19. The data consistency and recovery computer system of claim 15 , wherein said first process and said second process lock said associated mirror page and said primary page when beginning a write operation and unlock said associated mirror page and said primary page when finishing a write operation.

Assignments (6)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 4, 2013
From: GRAPHICS PROPERTIES HOLDINGS, INC.
To: RPX CORPORATION
Reel/Frame 029564/0799 →
CHANGE OF NAME Recorded Apr 18, 2012
From: SILICON GRAPHICS, INC.
To: GRAPHICS PROPERTIES HOLDINGS, INC.
Reel/Frame 028066/0415 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 18, 2007
From: GENERAL ELECTRIC CAPITAL CORPORATION
To: MORGAN STANLEY & CO., INCORPORATED
Reel/Frame 019995/0895 →
SECURITY INTEREST Recorded Oct 24, 2006
From: SILICON GRAPHICS, INC.
To: GENERAL ELECTRIC CAPITAL CORPORATION
Reel/Frame 018545/0777 →
SECURITY AGREEMENT Recorded Aug 19, 2005
From: SILICON GRAPHICS, INC. AND SILICON GRAPHICS FEDERAL, INC. (EACH A DELAWARE CORPORATION)
To: WELLS FARGO FOOTHILL CAPITAL, INC.
Reel/Frame 016871/0809 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 5, 2000
From: MENDE, ROBERT G. JR.
To: SILICON GRAPHICS, INC.
Reel/Frame 011348/0820 →