IP Library Granted Patent US 8,078,639
Granted Patent B2
US 8,078,639 · App. 12/884,974 · Granted Dec 13, 2011

File system filters and transactions

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,078,639
App. No.
12/884,974
Granted
Dec 13, 2011
Kind
B2
Abstract

Aspects of the subject matter described herein relate to file system filters and transactions. In aspects, a filter may enlist to receive notification of events associated with a transaction. Afterwards, the filter may receive notification of a transaction event for which it has enlisted. In response to receiving notification of the transaction the filter may perform an action as appropriate. Aspects of the subject matter described herein may be applied to stacked and managed filters.

Claims (36)

1. A computer-readable storage medium having stored computer-executable instructions which when executed by a processor of a computer perform a method for notifying file system filters of transaction events, the method comprising:

a filter, which is loaded into memory of the computer, registering with a filter manager to receive file system operations of a file system that supports transactions, the file system operations including open, create, write, and close operations;

the filter manager receiving a first file system operation comprising an open operation that opens a file as part of a transaction;

the filter manager passing an object related to the first file system operation to the filter, the object specifying that the first file system operation comprises an open operation that has opened the file as part of a transaction, wherein the transaction comprises a plurality of operations having the properties of being atomic, consistent, isolated, and durable;

the filter enlisting with the filter manager to receive notification of subsequent transaction events involving the file by calling an interface of the filter manager and providing information that indicates transaction events involving the file for which the filter is to be notified, wherein the subsequent transaction events comprise commit, rollback, prepare to commit, pre-prepare to commit, save point create, and save point rollback;

upon receiving a subsequent transaction event comprising a rollback event that involves the file that is involved in the transaction, the filter manager notifying the filter of the subsequent transaction event; and

in response to receiving notification of the subsequent transaction event, the filter performing an action.

2. The computer-readable storage medium of claim 1 , wherein the filter comprises a stacked filter.

3. The computer-readable storage medium of claim 1 , wherein performing the action comprises sending notification to the filter manager that indicates that the filter has completed zero or more actions in response to receiving the notification of the transaction event.

4. The computer-readable storage medium of claim 1 , wherein registering with the filter manager comprises providing a transaction callback to the filter manager that the filter manager calls when a file system operation occurs for which the filter has registered.

5. The computer-readable storage medium of claim 4 , wherein notifying the filter of the second file system operation comprises providing the notification via the transaction callback.

6. The computer-readable storage medium of claim 1 , wherein the object related to the first file system operation identifies a transaction ID and wherein the filter uses the transaction ID to access a transaction context object associated with the transaction ID via an interface provided by the filter manager.

7. The computer-readable storage medium of claim 1 , wherein the property of being atomic comprises a property of having every operation involved in the transaction succeed or having any tangible effects of any operation that did not succeed undone.

8. A method performed by a processor of a computer for notifying file system filters of transaction events, the method comprising:

a filter, which is loaded into memory of the computer, registering with a filter manager to receive file system operations of a file system that supports transactions, the file system operations including open, create, write, and close operations;

the filter manager receiving a first file system operation comprising an open operation that opens a file as part of a transaction;

the filter manager passing an object related to the first file system operation to the filter, the object specifying that the first file system operation comprises an open operation that has opened the file as part of a transaction, wherein the transaction comprises a plurality of operations having the properties of being atomic, consistent, isolated, and durable;

the filter enlisting with the filter manager to receive notification of subsequent transaction events involving the file by calling an interface of the filter manager and providing information that indicates transaction events involving the file for which the filter is to be notified, wherein the transaction events comprise commit, rollback, prepare to commit, pre-prepare to commit, save point create, and save point rollback;

upon receiving a subsequent transaction event comprising a rollback event that undoes each of the plurality of operations of the transaction in which the file is involved, the filter manager notifying the filter of the subsequent transaction event by passing the object and an indication that the rollback event has been received by the filter manager; and

instructing the filter manager to allow the transaction to be rolled back,

wherein the method is performed by the processor of the computer.

9. The method of claim 8 , wherein registering with the filter manager comprises providing the filter manager with a callback which the filter manager calls when a file system operation occurs for which the filter has registered.

10. The method of claim 8 , further comprising the filter manager receiving, from the filter, the instruction to allow the transaction to be rolled back, and in response, sending a request to a transaction coordinator to rollback the transaction as indicated by the filter.

11. The method of claim 8 , wherein the notification of the transaction event comprises a pointer to a transaction context object that includes filter specific information associated with the transaction.

12. The method of claim 11 , wherein the transaction context object includes a filter ID, a volume ID, an instance ID, a file object ID, a transaction ID, and a miniversion.

13. A method performed by a computer having a processor and memory for notifying a file system filter that a file is involved in a transaction, the method comprising:

receiving, by a filter manager that is loaded into memory of the computer, a request, from a filter that is also loaded into memory, to register the filter to receive notifications of file system operations that involve a file of the computer's file system;

registering the filter with the filter manager;

receiving, by the filter manager, a first file system operation that opens the file, wherein the first file system operation opens the file as part of a transaction such that any subsequent file system operations performed within the transaction will be grouped together having the properties of being atomic, consistent, isolated and durable;

sending, by the filter manager, a notification to the filter that indicates that the file has been opened as part of the transaction;

receiving, by the filter manager, a request, from the filter, to enlist the filter to receive notification of specified events of the transaction, wherein the specified events comprise one or more of commit, rollback, prepare to commit, pre-prepare to commit, save point create, and save point rollback;

receiving, by the filter manager, a second file system operation that writes to the file, a third file system operation that opens a different file, and a fourth file system operation that writes to the different file, wherein the first, second, third, and fourth file system operations are all part of the transaction;

receiving, by the filter manager, a file system event comprising a commit event to commit each of the first, second, third, and fourth file system operations of the transaction;

sending, to the filter, a notification of the commit event;

receiving, by the filter manager, an instruction from the filter that the filter has approved the transaction to commit; and

allowing the transaction to commit such that the changes made by the second and fourth file system operations to the file and different file respectively are persisted such that other processes outside of the transaction may view the changes.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2014
From: MICROSOFT CORPORATION
To: MICROSOFT TECHNOLOGY LICENSING, LLC
Reel/Frame 034544/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 20, 2010
From: CHRISTIANSEN, NEAL R.; THIND, RAVINDER S.; PUDIPEDDI, RAVISANKAR V.; GROFF, DANA D.; CARGILLE, JONATHAN M.; DEWEY, BRIAN K.
To: MICROSOFT CORPORATION
Reel/Frame 025012/0338 →