Log Tail Beginning Identification for Rapid Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In complex computing systems, recovering from failures is inefficient due to the large size of the 'tail of the log' which includes unneeded records, making rapid recovery challenging.

Innovation Solution

The system identifies the beginning of the 'tail of the log' by using collection records in the log, ensuring that only records after the last checkpointed collection are applied, thereby keeping the tail short and facilitating rapid recovery.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the entire log tail is applied during recovery, then all possible events are recovered, but the recovery time increases due to processing unneeded records

Engineering Contradiction:
Improvecompleteness of recoveryVSAvoidrecovery time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and removes unneeded log records from the recovery process by identifying the collection record corresponding to the last checkpointed collection and eliminating all records between that collection record and the actual end of the log tail. This extraction principle directly resolves the contradiction by removing harmful elements (unneeded records) while preserving necessary elements (records after the last checkpointed collection).

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The patent performs preliminary identification of the collection record location during normal operation before failure occurs. By pre-positioning this marker and using it during recovery, the system avoids scanning the entire log tail, thus reducing recovery time while ensuring complete recovery of necessary records.

Inventive Principle:
Principle #10Preliminary action

2Loss of time

If collection records are placed before their associated events in the log, then recovery can start earlier, but events from collections after the last checkpointed collection may be missed

Engineering Contradiction:
Improverecovery timeVSAvoidcompleteness of recovery
Core Design Contradiction:
Loss of timeVSReliability

Solution Approach 1:

The patent inverts the conventional log structure by placing collection records after their associated events rather than before. This inversion ensures that when recovery identifies the collection record for the last checkpointed collection, all subsequent events are guaranteed to be included in the recovery process, eliminating the risk of missing events from collections after the last checkpointed collection.

Inventive Principle:
Principle #13The other way round (Inversion)

3Reliability

If the log tail includes all records from the checkpoint, then no events are missed, but the size of the tail increases including records from completed collections

Engineering Contradiction:
Improvecompleteness of recoveryVSAvoidsize of log tail
Core Design Contradiction:
ReliabilityVSQuantity of substance

Solution Approach 1:

The patent extracts and eliminates unneeded log records by identifying the precise boundary at the collection record for the last checkpointed collection and removing all subsequent records from the log tail. This extraction reduces the quantity of log records that need to be processed during recovery while ensuring all necessary events are still recovered.

Inventive Principle:
Principle #2Taking out (Extraction)

Data Source

PatentUS10031814B2Collection record location as log tail beginning
Publication Date: 2018.07.24 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10031814B2 patent drawing
  • US10031814B2 patent drawing
  • US10031814B2 patent drawing

AI summary

The logging of tasks associated with multiple transactions in the context in which the computing system is capable of having multiple of the transactions active at a given time, and thus in which the order of completion of the transactions is not guaranteed to be the same as the order of initiation of the transactions. A sequence of transaction segment records is added to the log. Each transaction segment record comprises a transaction identifier range that does not overlap with the transaction identifier range in any of the sequence of transaction segment records including the transaction identifier range of any neighboring transaction segment record in the sequence of transaction segment records. Each transaction segment record also includes a log entry identifier range extending from the first task of the first of the transactions to be initiated to the last task of the last transaction to complete.