IP Library Granted Patent US 8,145,686
Granted Patent B2
US 8,145,686 · App. 11/123,563 · Granted Mar 27, 2012

Maintenance of link level consistency between database and file system

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 8,145,686
App. No.
11/123,563
Granted
Mar 27, 2012
Kind
B2
Abstract

Methods and computer-readable media for maintaining transactional link-level consistency between a database and a file system. A file system change is logged in a record of a database log and a file corresponding to the file system change is created in a file system folder. During a restart recovery process, an analysis operation and a conditional redo operation are performed based on the database log, and a conditional redo operation and an undo operation are performed based on the files in the file system folder. An undo operation is then performed based on the database log.

Claims (31)

1. A method of maintaining transactional link-level consistency between a database and a file system, comprising:

receiving a file system change request for a binary large object, wherein a reference to the binary large object is stored in a cell of a database and the binary large object is stored outside the database as a file in a file system;

comparing contents of a database log of the database to contents of a file system log of the file system;

in accordance with a result of the comparing, logging, by the database, a file system change associated with the file system change request in the database log;

logging, by the file system, the file system change in a filename of a file system log file, wherein the file system log file is stored as a file in the file system, wherein information that describes the file system change is encoded in the filename for the file system log file; and

executing, by the file system, the file system change for the binary large object.

2. The method of claim 1 , wherein logging the file system change in the file further comprises:

encoding information identifying that the file system change request is a request to save the binary large object in the filename of the file system log file.

3. The method of claim 1 , wherein logging the file system change in the file system log file further comprises:

encoding information identifying a file system object name, a Log Sequence Number, a transaction identifier, and an operation descriptor corresponding to the file system change in the filename of the file system log file.

4. The method of claim 1 , wherein logging the file system change in the file system log file further comprises:

encoding information identifying a Log Sequence Number of the database log in the filename of the file system log file.

5. The method of claim 1 , wherein said logging the file system change in the database log and logging the file system change in the file system log file execute prior to executing the file system change.

6. The method of claim 1 , wherein the file system change includes modifying the binary large object.

7. A computer system configured to maintain transactional link-level consistency between a database and a file system, comprising:

a processor coupled to a computer readable storage medium, the computer readable storage medium comprising:

instructions for storing a reference to a binary large object in a cell of a database;

instructions for storing the binary large object outside the database as a file in a file system;

instructions for determining that a change to the binary large object failed by comparing a log sequence number stored in a database log to a log sequence number stored in a file system log, wherein the log sequence number is encoded in a filename for a file system log file stored in the file system;

wherein the database log is stored in the database,

wherein the file system log is stored as a file in the file system, and

instructions for redoing the change by logging, by the file system, the change in the file system and executing, by the file system, the change for the binary large object.

8. The computer system of claim 7 , wherein the filename for the file system log file further comprises a file system object name, a transaction identifier and an operation descriptor corresponding to the file system change.

9. The computer system of claim 7 , wherein each file system log is stored in a separate file.

10. The computer system of claim 7 , wherein the instructions for determining that the change to the binary large object failed further comprise:

instructions for comparing a maximum log sequence number in the database log to a maximum log sequence number in the file system log.

11. A computer-readable medium having computer-executable instructions for performing a method of maintaining transactional link-level consistency between a database and a file system, the method comprising:

comparing contents of a database log of the database to contents of a file system log of the file system;

in accordance with a result of the comparing, logging a change to a binary large object in a record of the database log, wherein a reference to the binary large object is stored in a cell of the database and the binary large object is stored outside the database as a file in a file system, wherein the database log is stored in the database;

logging, by the file system, a file system change to the binary large object in a file system log file, wherein the file system log file is stored as a file in the file system; and

encoding in a filename of the file system log file information that identifies a file system object name, a Log Sequence Number, a transaction identifier and an operation descriptor corresponding to the file system change.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034543/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2006
From: RAMAN, BALAN SETHU; YAN, KANGRONG; RAJAN, RAJEEV B.
To: MICROSOFT CORPORATION
Reel/Frame 016999/0470 →
Continuity (1)
Related Publication 20060253502A1 · Nov 9, 2006