IP Library › Granted Patent US 7,143,120
Granted Patent B2
US 7,143,120 · App. 10/837,932 · Granted Nov 28, 2006

Systems and methods for automated maintenance and repair of database and file systems

Assignee: Microsoft 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,143,120
App. No.
10/837,932
Granted
Nov 28, 2006
Kind
B2
Abstract

The present invention relates generally to database and file system management and, more particularly, to automatic database and file system maintenance and repair to ensure data reliability. Various aspects of the present invention relate to responding and correcting data corruptions at a data page level for all data page types, as well as to recovery (including rebuild or restore operations) for various scenarios including, without limitation, index page corruptions (clustered and non-clustered), data page corruptions, and page corruptions in the log file.

Claims (69)

1. An automated data reliability system (DRS) implemented at least in part by a computing device for a database file system (DBFS), said DRS comprising:

a subsystem for performing database administration (DBA) tasks based on a set of policies;

a subsystem for responding to a set of data corruptions at a page level;

a subsystem for a first level of recovery for attempting to repair a corrupted page;

a subsystem for a second level of recovery for attempting to rebuild or restore a corrupted page if said corrupted page cannot be repaired;

a subsystem for evaluating a database associated with said DBFS to determine if the database is transactionally consistent; and

a subsystem for delaying repairs if said database is transactionally consistent until a crash recovery is complete, otherwise proceeding with repairs without the delaying.

2. The system of claim 1 wherein said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises a subsystem for addressing index page corruptions.

3. The system of claim 1 wherein said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises a subsystem for addressing data page corruptions.

4. The system of claim 1 wherein said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises a subsystem for addressing page corruptions in a log file.

5. The system of claim 1 further comprising an interface for adding, deleting, and modifying at least one functionality from among the following group of functionalities: error and event notifications, policies, and error/event handling algorithms.

6. The system of claim 1 wherein said DRS operates as a background thread.

7. A system for attaching and bringing online a data store for a database file system (DBFS), said system comprising:

a subsystem for attaching said data store;

a subsystem for running a crash recovery and attempting to bring the data store online,

wherein a set of data corruptions occurs at a page level,

wherein a first level of recovery attempts to repair a corrupted page and

wherein a second level of recovery attempts to rebuild or restore a corrupted page if said corrupted page cannot be repaired;

a subsystem for determining if the attempt to bring the data store online is not successful;

a subsystem for evaluating a database associated with said data store to determine if the database is transactionally consistent;

a subsystem for delaying repairs if said database is transactionally consistent until said crash recovery is complete, otherwise proceeding with repairs without the delaying.

8. The system of claim 7 further comprising a subsystem attempting a page level restoration and, if the page level restoration fails, ascertaining if the failure is due to an index page and, if so, rebuilding said index page when the attempt to bring the data store online is not successful and when the database is transactionally consistent.

9. The system of claim 7 further comprising a subsystem for taking the database offline and attempting an emergency repair when the attempt to bring the data store online is not successful and when said database is not transactionally consistent.

10. A method implemented at least in part by a computing device for automated data reliability system (DRS) for a database file system (DBFS), said method comprising:

establishing a set of policies;

performing database administration (DBA) tasks based on the set of policies;

responding to a set of data corruptions at a page level for all page types;

performing a first level of recovery by attempting to repair a corrupted page;

performing a second level of recovery by attempting to rebuild or restore a corrupted page if said corrupted page cannot be repaired;

evaluating a database associated with said DBFS to determine if the database is transactionally consistent; and

delaying repairs if the database is tranactionally consistent until a crash recovery is complete, otherwise proceeding with repairs without the delaying.

11. The method of claim 10 wherein said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises a subsystem for addressing index page corruptions.

12. The method of claim 10 wherein said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises a subsystem for addressing data page corruptions.

13. The method of claim 10 wherein said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises a subsystem for addressing page corruptions in a log file.

14. The method of claim 10 further comprising an interface for adding, deleting, and modifying at least one functionality from among the following group of functionalities: error and event notifications, policies, and error/event handling algorithms.

15. The method of claim 10 wherein said DRS operates as a background thread.

16. A method for attaching and bringing online a data store for a database file system (DBFS), said method comprising:

attaching said data store;

running a crash recovery and attempting to bring the data store online,

wherein a set of data corruptions occurs at a page level,

wherein a first level of recovery attempts to repair a corrupted page and

wherein a second level of recovery attempts to rebuild or restore a corrupted corrupted page if said corrupted page cannot be repaired;

determining if the attempt to bring the data store online is not successful;

evaluating a database associated with said data store to determine if the database is transactionally consistent; and;

delaying repairs if the database is transactionally consistent until said crash recovery is complete.

17. The method of claim 16 , wherein the attempt to bring the data store online is not successful, and wherein the database is transactionally consistent, and wherein said repairs are delayed until said crash recovery is completed, said method further comprising attempting a page level restoration and, if the page level restoration fails, ascertaining if the failure is due to an index page and, if so, rebuilding said index page.

18. The method of claim 16 , wherein the attempt to bring the data store online is not successful, and wherein said database is not transactionally consistent, said method further comprising taking the database offline and attempting an emergency repair.

19. A computer-readable storage medium having at least one tangible media, the tangible media comprising computer-readable instructions for automated data reliability system (DRS) for a database file system (DBFS), said computer-readable instructions comprising instructions for:

performing database administration (DBA) tasks based on a set of policies;

responding to a set of data corruptions at a page level for all page types;

performing a first level of recovery by attempting to repair a corrupted page;

performing a second level of recovery by attempting to rebuild or restore a corrupted page if said corrupted page cannot be repaired; and

evaluating a database associated with said DBFS to determine if the database is transactionally consistent and, if transactionally consistent, delaying repairs until a crash recovery is complete, otherwise proceeding with repairs without the delaying.

20. The computer-readable instructions of claim 19 further comprising instructions whereby said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises instructions for addressing index page corruptions.

21. The computer-readable instructions of claim 19 further comprising instructions whereby said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises instructions for addressing data page corruptions.

22. The computer-readable instructions of claim 19 further comprising instructions whereby said subsystem for a second level of recovery for rebuilding or restoring a corrupted page comprises instructions for addressing page corruptions in a log file.

23. The computer-readable instructions of claim 19 further comprising instructions for an interface for adding, deleting, and modifying at least one functionality from among the following group of functionalities: error and event notifications, policies, and error/event handling algorithms.

24. The computer-readable instructions of claim 19 further comprising instructions whereby said DRS operates as a background thread.

25. A computer-readable storage medium having at least one tangible media, the tangible media comprising computer-readable instructions for attaching and bringing online a data store for a database file system (DBFS), said computer-readable instructions comprising instructions for:

attaching said data store;

running a crash recovery and attempting to bring the data store online,

wherein a set of data corruptions occurs at a page level,

wherein a first level of recovery attempts to repair a corrupted page and

wherein a second level of recovery attempts to rebuild or restore a corrupted page if said corrupted page cannot be repaired;

determining if the attempt to bring the data store online is not successful;

evaluating a database associated with said data store to determine if the database is transactionally consistent; and

delaying repairs if the database is transactionally consistent until said crash recovery is complete.

26. The computer-readable instructions of claim 25 further comprising instructions for attempting a page level restoration and, if the page level restoration fails, ascertaining if the failure is due to an index page and, if so, rebuilding said index page when the attempt to bring the data store online is not successful and when the database is transactionally consistent and said repairs are delayed until said crash recovery is completed.

27. The computer-readable instructions of claim 25 further comprising instructions for taking the database offline and attempting an emergency repair when the attempt to bring the data store online is not successful and said database is not transactionally consistent.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034541/0477 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 3, 2004
From: OKS, ARTEM A.; KODAVALLA, HANUMANTHA RAO; SLEEMAN, MARTIN J.
To: MICROSOFT CORPORATION
Reel/Frame 015298/0634 →
Continuity (1)
Related Publication 20050278394A1 · Dec 15, 2005