Transactional file system
First Claim
1. A computer-readable storage media storing computer-executable instructions that implement a method of maintaining file system namespace information in a transactional file system, the maintenance of the system namespace information allowing multiple, concurrent transactions to each access and modify the namespace of a file while isolating the changes from concurrent transactions until the changes are committed to the file, the method comprising:
- receiving information at a file system indicating that a file is associated with a first transaction, the file having an associated file identity;
receiving a first request associated with the first transaction at the file system to perform a namespace-related operation to the file, the first transaction having an associated first transaction identity;
in response to the first request, performing the namespace-related operation to the file and storing information about the file in an isolation directory wherein the information comprises the file identity, the first transaction identity, and a visibility flag indicating a status of visibility of the file with regard to transaction identity, the isolation directory reflecting a state of the file prior to the first request to perform a namespace-related operation being received;
subsequent to receiving the first request and prior to the first transaction committing, receiving a second request directed to the file wherein the second request is associated with a second transaction having an associated second transaction identity; and
accessing the isolation directory to determine whether the file is visible with respect to the second transaction based at least on a status of the file'"'"'s corresponding visibility flag and the second transaction identity.
2 Assignments
0 Petitions
Accused Products
Abstract
A transactional file system wherein multiple file system operations may be performed as a transaction. An application specifies that file system-related operations should be handled in 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 operations consistent with transactional behavior. The component provides data isolation by providing multiple file versions, such that transactional readers do not receive changes until after the transaction commits and the reader reopens the file. The component also handles namespace logging operations in a multiple-level log that facilitates logging and recovery. Namespace isolation is provided until a transaction commits via isolation directories, whereby until committed, a transaction sees the effects of its own operations but not the operations of other transactions. Transactions over a network are also facilitated via a redirector protocol.
122 Citations
14 Claims
-
1. A computer-readable storage media storing computer-executable instructions that implement a method of maintaining file system namespace information in a transactional file system, the maintenance of the system namespace information allowing multiple, concurrent transactions to each access and modify the namespace of a file while isolating the changes from concurrent transactions until the changes are committed to the file, the method comprising:
-
receiving information at a file system indicating that a file is associated with a first transaction, the file having an associated file identity; receiving a first request associated with the first transaction at the file system to perform a namespace-related operation to the file, the first transaction having an associated first transaction identity; in response to the first request, performing the namespace-related operation to the file and storing information about the file in an isolation directory wherein the information comprises the file identity, the first transaction identity, and a visibility flag indicating a status of visibility of the file with regard to transaction identity, the isolation directory reflecting a state of the file prior to the first request to perform a namespace-related operation being received; subsequent to receiving the first request and prior to the first transaction committing, receiving a second request directed to the file wherein the second request is associated with a second transaction having an associated second transaction identity; and accessing the isolation directory to determine whether the file is visible with respect to the second transaction based at least on a status of the file'"'"'s corresponding visibility flag and the second transaction identity. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13)
-
-
14. In a computer system having a transactional file system, a method of maintaining name space information allowing multiple, concurrent transactions to each access and modify the namespace of a file while isolating the changes from concurrent transactions, the method comprising:
-
receiving information at a file system indicating that a file is associated with a first transaction, the file having an associated file identity; receiving a first request associated with the first transaction at the file system to perform a namespace-related operation to the file, the first transaction having an associated first transaction identity; in response to the first request, performing the namespace-related operation to the file and storing information about the file in an isolation directory wherein the information comprises the file identity, the first transaction identity, and a visibility flag indicating a status of visibility of the file with regard to transaction identity, the isolation directory reflecting a state of the file prior to the first request to perform a namesplace-related operation being received; subsequent to receiving the first request and prior to the first transaction committing. receiving a second request directed to the file wherein the second request is associated with a second transaction having an associated second transaction identity; and accessing the isolation directory to determine whether the file is visible with respect to the second transaction based at least on a status of the file'"'"'s corresponding visibility flag and the second transaction identity.
-
Specification