# US 7,613,698 B2 · Transactional file system

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 7,613,698 B2
- Document ID: US7613698B2
- Status: Granted
- Kind: B2
- Application number: 11/057,935
- Filed: 2005-02-14
- Published: 2005-07-07
- Granted: 2009-11-03
- Earliest claimed: 2000-03-30
- Assignees: Microsoft Corporation
- Inventors: Surendra Verma; Thomas J. Miller; Robert G. Atkinson
- Web page: https://patentgrep.com/patent/US7613698B2

## CPC

- G06F 16/1865: {Transactional file systems}
- Y10S 707/959: Network
- Y10S 707/99931: Database or file accessing
- Y10S 707/99932: Access augmentation or optimizing
- Y10S 707/99937: Sorting
- Y10S 707/99938: Concurrency, e.g. lock management in shared database
- Y10S 707/99942: Manipulating data structure, e.g. compression, compaction, compilation
- Y10S 707/99944: Object-oriented database structure
- Y10S 707/99952: Coherency, e.g. same view to multiple users
- Y10S 707/99953: Recoverability
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- Y10S: TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS

## Abstract

A transactional file system wherein multiple file system operations may be performed as a transaction. An application specifies that file system-related operations are to be handled as a transaction, and the application is given a file handle associated with a transaction context. For file system requests associated with a transaction context, a file system component manages the operations consistent with transactional behavior. The component handles namespace logging operations in a multiple-level log that facilitates logging and recovery. Page data is logged separate from the main log, with a unique signature that enables the log to determine whether a page was fully flushed to disk prior to a system crash.

## Claims

### Claim 1

In a computing environment, a system comprising:
a processor; and
a computer-readable storage medium having stored thereon a plurality of service modules executable by the processor, the plurality of service modules including:
a multiple-level logging service, the multi-level logging service module including:
a lower-level file system logging mechanism for logging, in a first log, low level operations corresponding to a first file; and
a higher-level transactional file system logging mechanism for logging, in a second log, higher level information, the higher-level transactional file system logging mechanism treating the low level information of the first log as data for the second log; and
a decision-making service module for determining whether higher-level logged operations actually occurred, wherein the decision-making service module is adapted to determine that lower-level logged operations have successfully committed, wherein lower-level logged operations commit subsequent to successfully committing a related higher-level logged operation, and wherein determining that lower-level logged operations have successfully committed necessarily indicates to the decision-making service module that previous higher-level logged operations actually occurred; and
wherein the second log contains a first log sequence number identifying the higher-level operation associated with the log entry and wherein the first file has an associated second log sequence number identifying the last committed higher-level operation; and
wherein the first log sequence number being less than or equal to the second log sequence necessarily indicates that the higher-level operation associated with the first log sequence number occurred prior to the low level operation being committed.

### Claim 2 (depends on 1)

The system as recited in claim 1, wherein the first log which logs low-level operations is an NT File System log.

### Claim 3 (depends on 1)

The system as recited in claim 1, wherein the lower-level file system logging mechanism logs metadata corresponding to the low level operations rather than the actual data that are written to the first file, and wherein the higher-level transaction file system logging mechanism logs data corresponding to the actual data written to the first file.
