Transactional file system
First Claim
1. In a computing environment, a computer-implemented method for isolating changes to a file in a transactional file system when the file is being opened by multiple, concurrent transactions, the method comprising:
- receiving a first request to open the file, the request associated with a first transaction;
opening a first instance of the file, and maintaining information indicating that the first instance of the file is associated with the first transaction;
receiving a second request to open the file, wherein the second request is received subsequent to the first request and is associated with a second transaction which is unassociated with the transaction of the first request;
opening a second instance of the file in response to the second request, and maintaining information indicating that the second instance of the file is associated with the second transaction;
maintaining data to isolate a first version of the file corresponding to the first instance from a second version of the file corresponding to the second instance;
receiving a change to data of the second instance of the file;
in response to receiving a change to the data of the second instance of the file, writing a change to the file and preserving a copy of a portion of the first version of the file to a first data structure prior to writing the change to the file;
the first data structure being associated with the data isolating with the first version of the file from the second version of the file;
receiving a read request to read the file subsequent to the second request to open the file, the read request associated with the first transaction;
determining that the first version of the file is associated with the first transaction; and
reading data corresponding to the first version of the file rather than reading data corresponding to the second version of the file that is associated with the second transaction in response to the read request associated with the first transaction.
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 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 provides data isolation by providing multiple versions of a file by tracking copies of changed pages, such that transactional readers do not receive changes to a file made by transactional writers, until the transactional writer commits the transaction and the reader reopens the file. 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.
73 Citations
10 Claims
-
1. In a computing environment, a computer-implemented method for isolating changes to a file in a transactional file system when the file is being opened by multiple, concurrent transactions, the method comprising:
-
receiving a first request to open the file, the request associated with a first transaction; opening a first instance of the file, and maintaining information indicating that the first instance of the file is associated with the first transaction; receiving a second request to open the file, wherein the second request is received subsequent to the first request and is associated with a second transaction which is unassociated with the transaction of the first request; opening a second instance of the file in response to the second request, and maintaining information indicating that the second instance of the file is associated with the second transaction; maintaining data to isolate a first version of the file corresponding to the first instance from a second version of the file corresponding to the second instance; receiving a change to data of the second instance of the file; in response to receiving a change to the data of the second instance of the file, writing a change to the file and preserving a copy of a portion of the first version of the file to a first data structure prior to writing the change to the file;
the first data structure being associated with the data isolating with the first version of the file from the second version of the file;receiving a read request to read the file subsequent to the second request to open the file, the read request associated with the first transaction; determining that the first version of the file is associated with the first transaction; and reading data corresponding to the first version of the file rather than reading data corresponding to the second version of the file that is associated with the second transaction in response to the read request associated with the first transaction. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9)
-
-
10. In a computing environment, a computer-implemented method for isolating changes to a file in a transactional file system when the file is opened by a transaction and subsequently modified by a request unassociated with the transaction, the method comprising:
-
receiving a first request to open a file, the first request associated with the transaction; opening a first instance of the file, and maintaining information indicating that the first instance of the file is associated with the transaction; receiving a second request to open the file, wherein the second request is received subsequent to the first request and is not associated with the transaction, the second request being a read/write request occurring concurrently with the first transaction; opening a second instance of the file in response to the second request; receiving a change to data of the second instance of the file; maintaining data to isolate a first version of the file corresponding to the first instance from a second version of the file corresponding to the second instance; receiving a read request to read the file subsequent to the second request to open the file, the read request associated with the transaction and occurring while the file is opened in response to the first request to open the file; determining that the first version of the file is associated with the transaction; reading data corresponding to the first version of the file rather than reading data corresponding to the second in response to the read request associated with the first transaction, including if the second request is associated with a second transaction that has committed; receiving a request to close the file, the close request being associated with the first transaction; closing the file with respect to the first transaction; receiving a read request to read the file subsequent to the request to close the file, the read request being associated with the first transaction; and reading data corresponding to the second version of the file, unless the second request is associated with a second transaction that has not committed, in which case data corresponding to the first version of the file is read.
-
Specification