← Back to Patent Explorer
US6035379A Expired / Lapsed US ⏱️ 0.0 years remaining

Transaction processing for user data employing both logging and shadow copying

Assignee: Microsoft Technology Licensing LLC
•
Filing: 1997-01-09
•
Granted: 2000-03-07
•
Expires: 2017-01-09
📄 Original PDF 🌐 Google Patents 🔄 Sync Now

Abstract

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.

Inventors

  • 👤 Sitaram C. V. Raju
  • 👤 Kyle G. Peltonen

Bibliographic Details

Application Number —
Jurisdiction US
Data Source google_patents
Last Synchronized 2026-11-04 03:23
CPC Classifications
G; G06; G06F; G06F11/00; G06F11/07; G06F11/14; G06F11/1474; G06F9/00; G06F9/06; G06F9/46; G06F9/466; G06F11/1471; Y; Y10; Y10S; Y10S707/00; Y10S707/99951; Y10S707/99952; Y10S707/99953

Claims Analysis

Total Claims: 19
Claim 1
Independent Claim 218 words
In a computer system having a file system for managing file system objects, wherein the file system objects include a storage that contains multiple streams, a method for performing transaction processing on user data held in at least one of the streams, the method comprising the computer-implemented steps of: as part of a selected transaction, opening one of the streams in a write mode where data can be written to said one of the streams, said one of the streams having a name, holding user data, and being contained by the storage; in response to opening said one of the streams, making a copy of said one of the streams and assigning a unique internal name to the copy of said one of the streams, without making a copy of at least one other stream contained by the storage; applying at least one change to the copy of said one of the streams as part of the selected transaction; in response to a request to commit the selected transaction, performing the steps of: renaming the copy of said one of the streams to have the name of said one of the streams; and determining whether any other transaction is accessing the storage; and if no other transaction is accessing the storage, then deleting said one of the streams.
Claim 2
Dependent Claim 218 words
In a computer system having a file system for managing file system objects, wherein the file system objects include a storage that contains multiple streams, a method for performing transaction processing on user data held in at least one of the streams, the method comprising the computer-implemented steps of: as part of a selected transaction, opening one of the streams in a write mode where data can be written to said one of the streams, said one of the streams having a name, holding user data, and being contained by the storage; in response to opening said one of the streams, making a copy of said one of the streams and assigning a unique internal name to the copy of said one of the streams, without making a copy of at least one other stream contained by the storage; applying at least one change to the copy of said one of the streams as part of the selected transaction; in response to a request to commit the selected transaction, performing the steps of: renaming the copy of said one of the streams to have the name of said one of the streams; and determining whether any other transaction is accessing the storage; and if no other transaction is accessing the storage, then deleting said one of the streams.
Claim 3
Dependent Claim 45 words
The method of claim 1 wherein the method further comprises the step of renaming said one of the streams to have the unique internal name that has been assigned to the copy of said one of the streams if another transaction is accessing the storage.
Claim 4
Dependent Claim 80 words
The method of claim 1, further comprising the steps of: as a part of the selected transaction, opening a second one of the streams, said second one of the streams holding user data, having a name, and being contained by the storage; and in response to opening said second one of the streams, making a copy of said second one of the streams and assigning a second unique internal name to the copy of said second one of the streams.
Claim 5
Dependent Claim 118 words
The method of claim 3, further comprising the steps of: applying at least one change to the copy of the second one of the streams as part of the selected transaction; in response to the request to commit the selected transaction, performing the steps of: renaming the copy of said second one of the streams to have the name of said second one of the streams; and determining whether any other transaction is accessing the storage; and if no other transaction is accessing the storage, then deleting said second one of the streams; wherein the deleting and the renaming of said one of the streams and said second one of the streams are done as an atomic transaction.
Claim 6
Dependent Claim 32 words
The method of claim 4 wherein the computer system includes a write-ahead logging mechanism and wherein the deleting steps and the renaming steps are performed with assistance of the write-ahead logging mechanism.
Claim 7
Dependent Claim 56 words
The method of claim 1, further comprising the step of making an additional copy of said one of the streams in response to an additional transaction opening said one of the streams in the write mode, the copy of said one of the streams and the additional copy of said one of the streams existing simultaneously.
Claim 8
Dependent Claim 29 words
The method of claim 1 wherein if a system failure prevents the deleting and renaming steps from being performed, the copy of said one of the streams is deleted.
Claim 9
Dependent Claim 22 words
The method of claim 7 wherein the copy of said one of the streams is deleted upon recovery from the system failure.
Claim 10
Dependent Claim 18 words
The method of claim 1 wherein the deleting and the renaming steps are performed as an atomic operation.
Claim 11
Dependent Claim 32 words
The method of claim 1 wherein the computer system includes a write-ahead logging mechanism and wherein the deleting step and the renaming step are performed with assistance of the write-ahead logging mechanism.
Claim 12
Dependent Claim 234 words
A computer-readable medium holding computer-executable instructions for implementing, in a computer system having a file system for managing file system objects, wherein the file system objects include a storage that contains multiple streams, a method for performing transaction processing on user data held in at least one of the streams, the computer-executable instructions being capable of controlling the computer system to perform the steps of: as part of a selected transaction, opening one of the streams in a write mode where data can be written to said one of the streams, said one of the streams having a name, holding user data, and being contained by the storage; in response to opening said one of the streams, making a copy of said one of the streams and assigning a unique internal name to the copy of said one of the streams, without making a copy of at least one other stream contained by the storage; applying at least one change to the copy of said one of the streams as part of the selected transaction; in response to a request to commit the selected transaction, performing the steps of: renaming the copy of said one of the streams to have the name of said one of the streams; and determining whether any other transaction is accessing the storage; and if no other transaction is accessing the storage, then deleting said one of the streams.
Claim 13
Dependent Claim 234 words
A computer-readable medium holding computer-executable instructions for implementing, in a computer system having a file system for managing file system objects, wherein the file system objects include a storage that contains multiple streams, a method for performing transaction processing on user data held in at least one of the streams, the computer-executable instructions being capable of controlling the computer system to perform the steps of: as part of a selected transaction, opening one of the streams in a write mode where data can be written to said one of the streams, said one of the streams having a name, holding user data, and being contained by the storage; in response to opening said one of the streams, making a copy of said one of the streams and assigning a unique internal name to the copy of said one of the streams, without making a copy of at least one other stream contained by the storage; applying at least one change to the copy of said one of the streams as part of the selected transaction; in response to a request to commit the selected transaction, performing the steps of: renaming the copy of said one of the streams to have the name of said one of the streams; and determining whether any other transaction is accessing the storage; and if no other transaction is accessing the storage, then deleting said one of the streams.
Claim 14
Dependent Claim 55 words
The computer-readable medium of claim 11 wherein the computer-executable instructions are further capable of controlling the computer system to perform the step of renaming said one of the streams to have the unique internal name that has been assigned to the copy of said one of the streams if another transaction is accessing the storage.
Claim 15
Dependent Claim 93 words
The computer-readable medium of claim 11 wherein the computer-executable instructions are further capable of controlling the computer system to perform the steps of: as a part of the selected transaction, opening a second one of the streams, said second one of the streams holding user data, having a name, and being contained by the storage; and in response to opening said second one of the streams, making a copy of said second one of the streams and assigning a second unique internal name to the copy of said second one of the streams.
Claim 16
Dependent Claim 131 words
The computer-readable medium of claim 13 wherein the computer-executable instructions are further capable of controlling the computer system to perform the steps of: applying at least one change to the copy of the second one of the streams as part of the selected transaction; in response to the request to commit the selected transaction, performing the steps of: renaming the copy of said second one of the streams to have the name of said second one of the streams; and determining whether any other transaction is accessing the storage; and if no other transaction is accessing the storage, then deleting said second one of the streams; wherein the deleting and the renaming of said one of the streams and said second one of the streams are done as an atomic transaction.
Claim 17
Dependent Claim 21 words
The computer-readable medium of claim 14 wherein the computer-executable instructions perform the deleting and the renaming steps as an atomic operation.
Claim 18
Dependent Claim 60 words
The computer-readable medium of claim 11 wherein the medium also holds computer-executable instructions for making an additional copy of said one of the streams in response to an additional transaction opening said one of the streams in the write mode, the copy of said one of the streams and the additional copy of said one of the streams existing simultaneously.
Claim 19
Dependent Claim 37 words
The computer-readable medium of claim 12 wherein the computer-executable instructions include a write-ahead logging mechanism and wherein the deleting step and the renaming step are performed by the computer-executable instructions with assistance of the write-ahead logging mechanism.

References Cited (Backward Citations)

US5504857A Cited
US5699428A Cited

USPTO Annuity & Maintenance Windows

Annuity Stage Window Opens Payment Deadline Surcharge Period Until Estimated Fee Status
3.5 Years (Year 4) 2003-03-07 2003-09-06 2004-03-07 $2000.00 Window Closed / Lapsed
7.5 Years (Year 8) 2007-03-07 2007-09-06 2008-03-07 $3760.00 Window Closed / Lapsed
11.5 Years (Year 12) 2011-03-07 2011-09-06 2012-03-07 $7700.00 Window Closed / Lapsed

Assigned Categories & Tags

No categories assigned to this patent yet.

Assign Category Tag