IP Library Granted Patent US 7,711,716
Granted Patent B2
US 7,711,716 · App. 11/682,535 · Granted May 4, 2010

Optimizations for a background database consistency check

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,711,716
App. No.
11/682,535
Granted
May 4, 2010
Kind
B2
Abstract

Two features allow for increased performance in running database consistency checks. First, a database consistency check runs directly on a database, as opposed to running on a saved database snapshot. This saves memory since there is no need to save a database snapshot. To handle any pages modified since a start of the database consistency check, a supplemental check runs on modified pages. Any facts generated by either check run through an early aggregation that attempts to aggregate facts during the database consistency check.

Claims (38)

1. A system that facilitates database consistency checking, comprising:

a processor;

a memory communicatively coupled to the processor; the memory having stored therein computer-executable instructions configured to implement the database consistency checking system including:

a database component that stores information;

a database consistency check component that, once started, begins generating facts relating to pages of the database component;

a supplemental database consistency check component that generates facts relating to pages of the database component for pages that have changed since starting the database consistency check component;

wherein generated facts are stored in packets of information about a given page, the generated facts comprising at least information indicating that a first page points to a second page;

wherein the database consistency check component determines for one or more given pages that the supplemental database consistency check component has already generated facts based on the one or more pages having been changed since starting the database consistency check component, and as a result, the database consistency check component determines not to generate facts for the one or more given pages; and

an aggregation component, wherein the aggregation component aggregates facts by canceling facts against each other, including at least canceling the fact that the first page points to a second pages against a fact that the second page points to the first page, and wherein any left over facts that have not been cancelled after aggregation indicates a consistency error in the database component.

2. The system of claim 1 , further comprising an optimization component that determines an appropriate time to run the consistency check.

3. The system of claim 1 , further comprising a notification component that notifies a potential page modifier that the consistency check is taking place.

4. The system of claim 1 , further comprising a report component that reports results from the consistency check.

5. The system of claim 1 , further comprising a repairing component that repairs errors discovered by the database consistency check.

6. The system of claim 1 , further comprising a sampling component that initiates the database check component to run a sample consistency check.

7. The system of claim 1 , further comprising a link component that allows the consistency check to run on information in a plurality of database components in a plurality of servers.

8. A system that facilitates database consistency checking, comprising:

a processor;

a memory communicatively coupled to the processor; the memory having stored therein computer-executable instructions configured to implement the database consistency checking system including:

a database consistency check component that, once started, begins generating facts about all of the pages stored in a database component;

a supplemental database consistency check component that generates facts relating to pages of a database component for pages that have changed since starting the database consistency check component;

wherein generated facts are stored in packets of information about a given page, the generated facts comprising at least information indicating that a first page points to a second page;

wherein the database consistency check component determines for one or more given pages that the supplemental database consistency check component has already generated facts based on the one or more pages having been changed since starting the database consistency check component, and as a result, the database consistency check component determines not to generate facts for the one or more given pages; and

an early aggregation component that aggregates the facts at least partially during operation of the database check component, wherein the aggregation component aggregates facts by canceling facts against each other, including at least canceling the fact that the first page points to a second pages against a fact that the second page points to the first page, and wherein any left over facts that have not been cancelled after aggregation indicates a consistency error in the database component.

9. The system of claim 8 , further comprising a maximization component that selects a combined operation of fact generation and any aggregation.

10. The system of claim 8 , further comprising an expression component that selects a sorted arrangement to store non-aggregated facts.

11. The system of claim 8 , further comprising a compression component that compresses the facts.

12. The system of claim 8 , further comprising a link component that allows the consistency check to run on information in a plurality of database components in a plurality of servers.

13. The system of claim 8 , further comprising a link component that allows the aggregation of facts from a plurality of sources.

14. A method for facilitating database consistency checking, comprising:

employing a processor executing computer executable instructions stored on a computer readable storage medium to implement the following acts:

determining an optimal time to run a database consistency check that generates facts about all of the pages in a database;

running the database consistency check, that once started, begins generating facts about all of the pages stored in a database component;

running a supplemental consistency check that executes upon database pages modified during running of the database consistency check, and that generates facts about the modified pages since starting the database consistency check;

storing the generated facts in packets of information about a given page, the generated facts comprising at least information indicating that a first page points to a second page;

determining for one or more given pages that the supplemental database consistency check has already generated facts based on the one or more pages having been changed since starting the database consistency check, and as a result, the database consistency check determining not to generate facts for the one or more given pages; and

aggregating the facts during running of the database consistency check and the supplemental consistency check, including aggregates facts by canceling facts against each other, including at least canceling the fact that the first page points to a second pages against a fact that the second page points to the first page, and wherein any left over facts that have not been cancelled after aggregation indicates a consistency error in the database component.

15. The method of claim 14 , further comprising storing non-aggregated facts in a sorted configuration.

16. The method of claim 14 , further comprising reporting facts that were not aggregated.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034542/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 6, 2007
From: STONECIPHER, RYAN LINDSEY
To: MICROSOFT CORPORATION
Reel/Frame 018967/0408 →