Log marking dependent on log sub-portion
AssigneeMicrosoft Technology Licensing, LLC
InventorsCristian Diaconu, Naveen Prakash, Alexander Budovski, Alejandro Hernandez Saenz
Life of this patent
Estimating the term…
Abstract
The use of log marking (otherwise known as “coloring”) of sub-portions of a log that records actions (e.g., data operations) performed by a computing system. The log is composed of multiple sub-portions, such as virtual log files, which are successively added to the log as the log grows. For instance, the sub-portions may be virtual log files of the log. The principles described herein change the use of log marking depending on which sub-portion of the log is being marked. If the computing system fails, and recovery is needed, the recovery process can thus deterministically identify where the last written log record is.
Claims10
A computing system comprising:
- one or more processors;
- and
- one or more computer-readable storage media having thereon computer-execution instructions that are structured such that, when executed by the one or more processors, the computing system is caused to perform a method for adding sub-portions to a log composed of multiple sub-portions, the method comprising:
- an act of adding each of a plurality of new sub-portions to the log, wherein for each of at least some of the plurality of sub-portions, the act of adding the corresponding sub-portion comprises:
- assigning a corresponding sub-portion identifier to the corresponding sub-portion, wherein sub-portions are added to the log with identifiers that alternate between even identifiers and odd identifiers;
- initializing each of a plurality of blocks of the corresponding sub-portion to be associated with the corresponding sub-portion and by at least assigning a same value of log marker data to each of the plurality of the blocks in the corresponding sub-portion, the value of the log marker data being selected from a first value of log marker data and a different value of log marker data value, the selection of the value of the log marker data depending on whether the corresponding sub-portion identifier is an even identifier or an odd identifier, and such that all adjacent sub-portions in the plurality of sub-portions have different log marker data values assigned, with the first value of log marker data being used for a first sub-portion and the different value of log marker data value being used for the subsequent and adjacent sub-portion followed by a next sub-portion being assigned the first value of log marker data;
- and
- when writing to each particular block of the plurality of blocks in the corresponding sub-portion, after wrapping around from an end of the log and writing to a previously written to sub-portion of the log, modifying a previously assigned value of log marker data for the particular block of the corresponding sub-portion, wherein modifying the first value comprises changing the first value of log marker data to the different value of log marker data and wherein modifying the different value of log marker data comprise changing the different value of log marker data into the first value of log marker data, the value depending on the corresponding sub-portion identifier which has changed after wrapping around from the end of the log and writing to the previously written to sub-portion.
A method for adding sub-portions to a log composed of multiple sub-portions, the method comprising:
- an act of adding each of a plurality of new sub-portions to the log, wherein for each of at least some of the plurality of sub-portions, the act of adding the corresponding sub-portion comprises:
- assigning a corresponding sub-portion identifier to the corresponding sub-portion, wherein sub-portions are added to the log with identifiers that alternate between even identifiers and odd identifiers;
- initializing each of a plurality of blocks of the corresponding sub-portion to be associated with the corresponding sub-portion and by at least assigning a same value of log marker data to each of the plurality of the blocks in the corresponding sub-portion, the value of the log marker data being selected from a first value of log marker data and a different value of log marker data value, the selection of the value of the log marker data depending on whether the corresponding sub-portion identifier is an even identifier or an odd identifier, and such that all adjacent sub-portions in the plurality of sub-portions have different log marker data values assigned, with the first value of log marker data being used for a first sub-portion and the different value of log marker data value being used for the subsequent and adjacent sub-portion followed by a next sub-portion being assigned the first value of log marker data;
- and
- when writing to each particular block of the plurality of blocks in the corresponding sub-portion, after wrapping around from an end of the log and writing to a previously written to sub-portion of the log, modifying a previously assigned value of log marker data for the particular block of the corresponding sub-portion, wherein modifying the first value comprises changing the first value of log marker data to the different value of log marker data and wherein modifying the different value of log marker data comprise changing the different value of log marker data into the first value of log marker data, the value depending on the corresponding sub-portion identifier which has changed after wrapping around from the end of the log and writing to the previously written to sub-portion.
Dependencies are inferred from the claim text.