Live Database Schema Evolution Without Outage
Find Innovative SolutionsGenerate 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
Engineering 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
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
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
2Reliability
If all threads are routed to RELEASE(COMMIT) option during schema changes, then data consistency is improved, but performance and contention time deteriorate
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
3Reliability
If schema changes wait for user applications to terminate, then data integrity is ensured, but schema evolution time and system downtime increase
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
Data Source
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.


