US2006143241A1PendingUtilityA1

System and method for scaleable multiplexed transactional log recovery

Assignee: MICROSOFT CORPPriority: Nov 27, 2002Filed: Feb 17, 2006Published: Jun 29, 2006
Est. expiryNov 27, 2022(expired)· nominal 20-yr term from priority
Y10S707/99953G06F 16/2308
35
PatentIndex Score
0
Cited by
0
References
0
Claims

Abstract

A system and method for providing scaleable recovery for a multiplexed transactional log. Unlike a dedicated log that includes log data of only one client, a multiplexed transactional log may include log data from multiple clients. In a multiplexed transactional log, log data from different clients may be multiplexed into the multiplexed transactional log in any order. The multiplexed log is maintained for multiple clients using a scaleable logging process. After a system failure, the multiplexed log is recovered using a scaleable recovery process. The scaleable recovery process includes an end-of-log locating process for locating the end of the multiplexed log and each of the virtual logs with the multiplexed log. The end-of-log locating process is also scaleable.

Claims

exact text as granted — not AI-modified
1 - 57 . (canceled)  
   
   
       58 . A computer-implemented method for maintaining a transactional log that is multiplexed, comprising: 
 receiving log blocks from clients; wherein the log blocks that are received from each of the clients are unrelated such that recovery of data for one of the clients does not depend upon the log blocks of another client;    appending in any order each of the log blocks to a current region in a flush queue; wherein the flush queue is configured to store a predetermined number of log blocks;    determining when a size of the current region is reaches a predetermined value;    updating a current owner page associated with the current region; and    appending the current owner page and the log blocks that are contained within the flush queue to the transactional log.    
   
   
       59 . The computer-implemented method of  claim 58 , wherein the current owner page is updated in response to appending the log blocks to the current region; and wherein the current owner page is stored in a metadata file.  
   
   
       60 . The computer-implemented method of  claim 59 , further comprising determining a location identifier identifying a location of the current owner page in the transactional log and storing the location identifier in the metadata file.  
   
   
       61 . The computer-implemented method of  claim 58 , further comprising starting a new region; and creating a new owner page associated with the new region after appending the current owner page and the log blocks that are contained within the flush queue to the transactional log.  
   
   
       62 . The computer-implemented method of  claim 58 , wherein appending the current owner page and the log blocks that are contained within the flush queue to the transactional log occurs upon the occurrence of a predetermined event.  
   
   
       63 . The computer-implemented method of  claim 62 , wherein the predetermined event occurs when one of the clients issues a command for immediately appending a log block to the transactional log.  
   
   
       64 . The computer-implemented method of  claim 63 , further comprising updating metadata associated with the transactional log.  
   
   
       65 . The computer-implemented method of  claim 64 , wherein the metadata includes the location of an owner page associated with the last region in the transactional log.  
   
   
       66 . A computer-readable medium having computer executable instructions for maintaining a transactional log, the instructions comprising: 
 receiving a first log block from a first client and a second log block from a second; wherein the first log block and the second log block relate to different programs;    appending the first log block and the second log block to a flush queue; wherein the flush queue is configured to store a predetermined number of log blocks;    determining when an event occurs relating to the flush queue;    updating a current owner page; wherein the current owner page is updated when the first log block is appended to the flush queue and when the second log block is appended to the flush queue; and    appending the current owner page and the log blocks that are contained within the flush queue to the transactional log.    
   
   
       67 . The computer-readable medium of  claim 66 , further comprising storing the current owner page in a metadata file.  
   
   
       68 . The computer-readable medium of  claim 67 , further comprising determining a location identifier identifying a location of the current owner page in the transactional log and storing the location identifier in the metadata file.  
   
   
       69 . The computer-readable medium of  claim 68 , further comprising starting a new region and creating a new owner page when the log blocks that are contained within the flush queue are appended to the transactional log.  
   
   
       70 . The computer-readable medium of  claim 66 , wherein determining when the event occurs relating to the flush queue comprises determining when one of the clients issues a command for immediately appending a log block to the transactional log.  
   
   
       71 . The computer-readable medium method of  claim 66 , wherein determining when the event occurs relating to the flush queue comprises determining when a size of the log blocks within the flush queue exceed a predetermined value.  
   
   
       72 . A computer-implemented method for recovering a transactional log after a system failure, comprising: 
 determining a starting point in the transactional log by referring to metadata associated with the transactional log; wherein the transactional log includes log blocks from clients and wherein the log blocks from different clients that are stored within the transactional log are unrelated;    locating a last valid owner page within the transactional log by checking at discrete intervals from the starting point toward the end of the transactional log;    checking the validity of a region in the transactional log associated with the last valid owner page; and    if the region associated with last valid owner page is valid, determining a first invalid log block in a incomplete region, wherein the incomplete region is located beyond the valid region toward the end of the transactional log.    
   
   
       73 . The computer-implemented method of  claim 72 , wherein the discrete intervals are the extent of a region.  
   
   
       74 . The computer-implemented method of  claim 72 , further comprising sequentially checking regions toward the beginning of the transactional log until a valid region is found when the region associated with last valid owner page is not valid.  
   
   
       75 . The computer-implemented method of  claim 72 , further comprising reconstructing a new owner page associated with the incomplete region.  
   
   
       76 . The computer-implemented method of  claim 72 , wherein checking the validity of a region in the transactional log associated with the last valid owner page comprises linearly validating each block in the region.  
   
   
       77 . The computer-implemented method of  claim 72 , further comprising reconstructing in a memory an owner page form log blocks in the incomplete region.

Join the waitlist — get patent alerts

Track US2006143241A1 — get alerts on status changes and closely related new filings.

We store only your email — no account needed. See our privacy policy.