Recovering from a failure using a transaction table in connection with shadow copy transaction processing
First Claim
1. In a computer system that includes a volatile primary storage and a persistent secondary storage, the computer system supporting transaction processing of user data using shadow copying, a method of removing shadow copies from the persistent secondary storage as part of a recovery from a failure, comprising the steps of:
- providing a logical organization of objects, the logical organization being logically divided into named partitions with each partition being capable of holding one or more objects that contain user data;
providing a transaction table, stored in the persistent secondary storage, for holding names of partitions that have been opened by transactions;
opening selected partitions for writing by transactions, a shadow copy of at least one object held by each of the selected partitions being generated in the persistent secondary storage;
adding a name of each of the selected partitions to the transaction table in response to the selected partitions being opened;
performing a last close on at least one, but not all, of the selected partitions;
removing the name of each of said at least one of the selected partitions in response to said at least one of the selected partitions being closed; and
recovering from a failure, including deleting any shadow copies of the at least one object of the selected partitions whose names remain in the transaction table.
1 Assignment
0 Petitions
Accused Products
Abstract
A system for performing transaction processing on user data maintains a transaction table. The transaction table holds the identities of structured storages that have been opened but not yet closed by each of the transactions that are accessing the structured storages. Each time that a stream holding user data is opened in a write mode, an internal copy of the stream is made. Changes are applied to the internal copy. At commit time, the following metadata operations are performed as a single atomic transaction. Each copy is renamed to have the name of the original stream. If no other transactions are accessing the stream, the original stream is deleted. However, if other transactions are accessing the stream, the original stream is renamed to have the name of the copy. The metadata transaction is implemented with write-ahead logging. Upon recovery from a system failure, any metadata transaction that was in progress at the time of the failure is undone. Then the transaction table is read to identify each of the structured storages that must be opened and processed to remove any remaining internal copies of streams. In summary, the system provides robust multiuser transacted access to user data through file system metadata transactions and uses a transaction table to optimize system recovery.
148 Citations
29 Claims
-
1. In a computer system that includes a volatile primary storage and a persistent secondary storage, the computer system supporting transaction processing of user data using shadow copying, a method of removing shadow copies from the persistent secondary storage as part of a recovery from a failure, comprising the steps of:
-
providing a logical organization of objects, the logical organization being logically divided into named partitions with each partition being capable of holding one or more objects that contain user data; providing a transaction table, stored in the persistent secondary storage, for holding names of partitions that have been opened by transactions; opening selected partitions for writing by transactions, a shadow copy of at least one object held by each of the selected partitions being generated in the persistent secondary storage; adding a name of each of the selected partitions to the transaction table in response to the selected partitions being opened; performing a last close on at least one, but not all, of the selected partitions; removing the name of each of said at least one of the selected partitions in response to said at least one of the selected partitions being closed; and recovering from a failure, including deleting any shadow copies of the at least one object of the selected partitions whose names remain in the transaction table. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8, 9, 12, 14, 15)
-
-
10. In a computer system that includes a volatile primary storage and a persistent secondary storage, the computer system supporting structured storages, streams, and transaction processing of user data stored in the streams using shadow copying, a method of removing shadow copies from the persistent secondary storage as part of a recovery from a failure, the method comprising the steps of:
-
providing a transaction table, stored in the persistent secondary storage, for holding information that identifies structured storages opened for writing as part of a transaction; initially opening selected structured storages for writing as part of a transaction; generating in the persistent secondary storage a shadow copy of at least one stream included in each of the selected structured storages; for each of the selected structured storages, adding to the transaction table information identifying the particular selected structured storage in response to the particular selected structured storage having been initially opened for writing as part of a transaction; performing a last close on at least some, but not all, of the selected structured storages; for each of said at least some of the selected structured storages, removing from the transaction table the information identifying the particular selected structured storage in response to the last close having been performed on the particular selected structured storage; and recovering from a failure, including deleting any shadow copies of the at least one stream included in the selected structured storages whose identifying information remains in the transaction table. - View Dependent Claims (11, 13, 16)
-
-
17. In a computing environment that includes a volatile primary storage and a persistent secondary storage, the computer environment supporting transaction processing of user data using shadow copying, a system for removing shadow copies from the persistent secondary storage as part of a recovery from a failure, comprising:
-
processor means for performing the steps of; providing a logical organization of objects, the logical organization being logically divided into named partitions with each partition being capable of holding one or more objects that contain user data; providing a transaction table, stored in the persistent secondary storage, for holding names of partitions that have been opened by transactions; opening selected partitions for writing by transactions, a shadow copy of at least one object held by each of the selected partitions being generated in the persistent secondary storage; adding a name of each of the selected partitions to the transaction table in response to the selected partitions being opened; performing a last close on at least one, but not all, of the selected partitions; removing the name of each of said at least one of the selected partitions in response to said at least one of the selected partitions being closed; and recovering from a failure, including deleting any shadow copies of the at least one object of the selected partitions whose names remain in the transaction table. - View Dependent Claims (18, 19, 20)
-
-
21. In a computing environment that includes a volatile primary storage and a persistent secondary storage, the computer system supporting structured storages, streams, and transaction processing of user data stored in the streams using shadow copying, a system for removing shadow copies from the persistent secondary storage as part of a recovery from a failure, comprising:
processor means for performing the steps of; providing a transaction table, stored in the persistent secondary storage, for holding information that identifies structured storages opened for writing as part of a transaction; initially opening selected structured storages for writing as part of a transaction; generating in the persistent secondary storage a shadow copy of at least one stream included in each of the selected structured storages; for each of the selected structured storages, adding to the transaction table information identifying the particular selected structured storage in response to the particular selected structured storage having been initially opened for writing as part of a transaction; performing a last close on at least some, but not all, of the selected structured storages; for each of said at least some of the selected structured storages, removing from the transaction table the information identifying the particular selected structured storage in response to the last close having been performed on the particular selected structured storage; and recovering from a failure, including deleting any shadow copies of the at least one stream included in the selected structured storages whose identifying information remains in the transaction table. - View Dependent Claims (22, 23, 24)
-
25. A computer program product for implementing, in a computer system that includes a volatile primary storage and a persistent secondary storage, the computer system supporting transaction processing of user data using shadow copying, a method of removing shadow copies from the persistent secondary storage as part of a recovery from a failure, the computer program product comprising:
a computer-readable medium carrying computer-executable instructions for implementing the method wherein the computer-executable instructions comprise; program code means for providing a logical organization of objects, the logical organization being logically divided into named partitions with each partition being capable of holding one or more objects that contain user data; program code means for providing a transaction table, stored in the persistent secondary storage, for holding names of partitions that have been opened by transactions; program code means for opening selected partitions for writing by transactions, a shadow copy of at least one object held by each of the selected partitions being generated in the persistent secondary storage; program code means for adding a name of each of the selected partitions to the transaction table in response to the selected partitions being opened; program code means for performing a last close on at least one, but not all, of the selected partitions; program code means for removing the name of each of said at least one of the selected partitions in response to said at least one of the selected partitions being closed; and program code means for recovering from a failure, including program code means for deleting any shadow copies of the at least one object of the selected partitions whose names remain in the transaction table. - View Dependent Claims (26, 27, 28, 29)
Specification