System and method for scaleable multiplexed transactional log recovery
AssigneeMicrosoft Corporation
InventorDexter Bradshaw
Life of this patent
Estimating the term…
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.
Claims21
1-57. (canceled)
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.
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.
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.
Dependencies are inferred from the claim text.