Resumable Database Index Build via State Persistence

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current database index build operations are prone to failure due to resource-intensive processes and long transaction durations, leading to significant losses when failures occur, and they often require restarting from scratch, which is inefficient and can cause log management issues.

Innovation Solution

Implementing a resumable index build method that allows pausing and resuming index build operations, enabling them to withstand failures with minimal data loss by persisting operation state and using an updated query plan, thereby avoiding the need for complete restarts and reducing log size requirements.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If index build operations are executed in a single transaction, then data consistency is maintained, but the operation duration increases and log size becomes unmanageable

Engineering Contradiction:
Improvedata consistencyVSAvoidoperation duration
Core Design Contradiction:
ReliabilityVSDuration of action of moving object

Solution Approach 1:

The patent divides a single large index build transaction into multiple smaller transactions or batches. Each batch processes a portion of the data and can be committed independently, reducing the duration of individual transactions while maintaining overall data consistency through proper transaction boundaries and recovery mechanisms.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent performs preliminary actions by creating the index structure in advance and then populating it incrementally. The index structure is prepared and metadata is set up beforehand, allowing the actual data processing to occur in smaller, manageable batches rather than in a single long-running transaction.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If index build operations are restarted from scratch after failure, then data consistency is ensured, but time loss increases significantly

Engineering Contradiction:
Improvedata consistencyVSAvoidtime loss
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary actions by establishing the index structure and metadata in advance. When a failure occurs, the preliminary structure remains intact and can be reused, allowing recovery to proceed by continuing from the point of failure rather than restarting the entire operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements self-service recovery mechanisms that automatically detect failures, preserve the current state of index construction, and enable resumption without manual intervention. The index build process monitors its own state and can automatically continue from where it left off, reducing both time loss and operational complexity.

Inventive Principle:
Principle #25Self-service

3Reliability

If large indexes are built in a single operation, then completeness is achieved, but resource consumption increases and failure risk increases

Engineering Contradiction:
Improveoperation completenessVSAvoidresource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The patent segments the index build operation into multiple smaller batches or chunks. Each batch processes a portion of the data with corresponding resource requirements, distributing the total resource consumption over time and preventing resource exhaustion. This segmentation also reduces the risk associated with any single operation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements partial action by building the index in increments rather than completing the full operation in one step. Each batch completes a portion of the index construction, allowing the system to manage resources more effectively and recover from failures without having committed excessive resources to a single all-or-nothing operation.

Inventive Principle:
Principle #16Partial or excessive action

4Quantity of substance

If index build operations run for extended periods, then large indexes can be constructed, but the risk of interruption increases

Engineering Contradiction:
Improveindex sizeVSAvoidoperation stability
Core Design Contradiction:
Quantity of substanceVSReliability

Solution Approach 1:

The patent divides large-scale index construction into multiple smaller, independent batches. Each batch has a shorter duration and lower risk of interruption, yet collectively they build the complete large index. This segmentation maintains operation stability while still achieving the goal of constructing large indexes.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system implements self-monitoring and self-recovery capabilities that detect interruptions and automatically resume operations from the last successful checkpoint. This self-service approach maintains reliability during extended operations by continuously monitoring system state and recovering from interruptions without manual intervention.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS10769134B2Resumable and online schema transformations
Publication Date: 2020.09.08 MICROSOFT TECHNOLOGY LICENSING LLC
  • US10769134B2 patent drawing
  • US10769134B2 patent drawing
  • US10769134B2 patent drawing

AI summary

A database command is received from a user for modifying an existing data structure or creating a new data structure. The database command is used to construct a query that is provided to a query optimizer component where the query is transformed into a first query execution plan including operations that persist operation state. Some data specified in the query is received, and some of the new data structure is constructed by executing some of the first query plan. While receiving some of data specified in the query and constructing some of the new data structure, operation state of execution is persisted. When an interruption of execution of the first query plan occurs, an updated query plan is generated using persisted operation state. External updates occur, before or after the interruption, but before executing the updated query plan. The external updates are transactionally validated.