Live Database Schema Evolution Without Outage

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Implementing schema evolution on a live database system without causing an outage is challenging due to the need to manage conflicting lock states and ensure data integrity, especially when dealing with urgent changes that require online modifications.

Innovation Solution

Identify application packages bound with the RELEASE(DEALLOCATE) option and dynamically route them to RELEASE(COMMIT) behavior during schema changes, allowing existing and new threads to execute with RELEASE(COMMIT) while maintaining high performance and minimizing contention time on package locks.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the database system takes offline to perform schema changes, then data integrity and consistency are ensured, but system availability and uptime deteriorate

Engineering Contradiction:
Improvedata integrityVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies dynamics by making the package lock release behavior configurable and changeable at runtime. Different threads can have different release behaviors (RELEASE(COMMIT) vs RELEASE(DEALLOCATE)) based on their execution context, allowing the system to dynamically adapt between consistency and availability requirements during schema evolution

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent segments the application threads into two groups: those executing with RELEASE(COMMIT) behavior and those with RELEASE(DEALLOCATE) behavior. This segmentation allows selective application of strict lock management only where needed during schema changes, while other threads continue with high-performance deallocate behavior

Inventive Principle:
Principle #1Segmentation

2Reliability

If all threads are routed to RELEASE(COMMIT) option during schema changes, then data consistency is improved, but performance and contention time deteriorate

Engineering Contradiction:
Improvedata consistencyVSAvoidthread execution performance
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by making the lock release behavior specific to individual threads and packages rather than applying it globally. Each thread can maintain its optimal release behavior unless it's specifically involved in schema change operations, thus preserving high performance for the majority of threads while ensuring consistency for critical ones

Inventive Principle:
Principle #3Local quality

3Reliability

If schema changes wait for user applications to terminate, then data integrity is ensured, but schema evolution time and system downtime increase

Engineering Contradiction:
Improvedata integrityVSAvoidschema evolution time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent applies preliminary action by pre-configuring the database system with multiple package release behavior options and establishing the framework for dynamic routing before schema changes are needed. This preparation allows the system to immediately switch to appropriate thread management during schema evolution without waiting for application termination

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS12189585B2Schema evolution on a live database system without an outage
Publication Date: 2025.01.07 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US12189585B2 patent drawing
  • US12189585B2 patent drawing
  • US12189585B2 patent drawing

AI summary

Aspects of the invention include techniques for providing a schema evolution on a live database system without an outage. A non-limiting example method includes initiating a schema change on a live database system. The schema change includes an attribute for a database object. A first application package having a user application that is dependent on the database object and that is bound with a release(deallocate) option is identified. Existing threads and new threads executing the first application package are routed to execute the first application package with a release(commit) option and the schema change on the live database system is completed. One or more additional threads concurrently executing one or more additional application packages remain executing with the release(deallocate) option.