Zero-Downtime Software Upgrade via Parallel Runtime Switching

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current maintenance procedures for software applications and databases often result in downtime during upgrades, which is undesirable and difficult to minimize, especially when dealing with incompatible versions.

Innovation Solution

An automated test and development platform that traces and analyzes development activities to compute an upgrade configuration, enabling a zero-downtime upgrade by establishing a parallel runtime environment and switching production use to the new version without disrupting service.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional maintenance procedures are used to upgrade application or database, then the upgrade can be completed, but downtime occurs and users are unable to interact with the system

Engineering Contradiction:
Improvesystem availabilityVSAvoiddowntime duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system performs preliminary actions by creating a parallel runtime environment and pre-migrating database objects to a target schema before the upgrade is needed. The parallel runtime is established and database objects are copied to the target schema in advance, allowing the system to switch over without downtime when the upgrade is executed.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The upgrade process is segmented into distinct phases: maintaining the current runtime environment while establishing a parallel runtime, migrating only necessary database objects to a target schema, and switching between runtimes. This segmentation allows the upgrade to proceed without taking the entire system offline.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If database objects are migrated to a target schema during upgrade, then the new version can be deployed, but the complexity of the upgrade process increases

Engineering Contradiction:
Improveversion compatibilityVSAvoidupgrade process complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

A target schema acts as an intermediary between the source schema and the new application version. Database objects are migrated to this intermediate target schema, which then serves as the bridge allowing the new version to access data without direct compatibility issues with the old schema structure.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

Instead of directly transforming and modifying the production database schema during upgrade, the system creates a copy of the necessary database objects in a target schema. This copying approach simplifies the upgrade process by avoiding complex in-place transformations and allowing non-destructive modifications.

Inventive Principle:
Principle #26Copying

3Ease of manufacture

If the application is taken offline for maintenance, then maintenance operations can be performed, but user interaction and productivity are disrupted

Engineering Contradiction:
Improvemaintenance feasibilityVSAvoiduser interaction capability
Core Design Contradiction:
Ease of manufactureVSProductivity

Solution Approach 1:

The system maintains continuous useful action by keeping the current runtime environment active and accessible to users throughout the upgrade process. While maintenance operations are performed on the parallel runtime and target schema, users continue to interact with the application without interruption, ensuring uninterrupted productivity.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11237821B1Configuring zero-downtime upgrades using automated development and test analysis
Publication Date: 2022.02.01 SAP SE
  • US11237821B1 patent drawing
  • US11237821B1 patent drawing
  • US11237821B1 patent drawing

AI summary

Implementations include, during development of a second version within a development environment, tracing activities to determine development tables, the second version including changes that are incompatible with the first version, the development tables including deploy tables, activation tables, and troubleshooting tables, computing, by a configuration generator, an upgrade configuration based on the development tables, the upgrade configuration defining tables to deploy the changes during an upgrade, the tables being computed based on the development tables, during the upgrade: continuing production use of a first version using a first runtime at least partially including a first data schema, and establishing a second runtime at least partially by defining a second data schema within the database system using the upgrade configuration, the second data schema including the tables, and completing the upgrade by switching production use to the second version from the first version.