Gradual Upgrade Engine for Software Data Schema Conversion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Upgrading software applications to new versions can result in extended downtime due to the large volume of user data, which is unacceptable for mission-critical and high-availability systems, as existing methods often require complete data schema conversion, rendering systems unavailable for days or weeks.

Innovation Solution

A gradual upgrade technique that converts user data in phases, allowing limited access to the application during the process by converting data segments one at a time, using a gradual update engine that manages the upgrade process and provides options for selective data segment conversion and temporary URL redirection to maintain system availability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If complete data schema conversion is performed during software upgrade, then data integrity is ensured, but system downtime increases significantly

Engineering Contradiction:
Improvedata integrityVSAvoidsystem downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent divides the data set into multiple data segments and converts them sequentially rather than all at once. The upgrade process processes one data segment at a time, allowing the system to remain partially available during conversion. This segmentation approach maintains data integrity for converted segments while reducing overall downtime by enabling phased conversion.

Inventive Principle:
Principle #1Segmentation

2Productivity

If the entire data set is converted to the new schema, then the new version of the application can fully operate, but the system becomes unavailable for extended periods

Engineering Contradiction:
Improveapplication functionalityVSAvoidupgrade duration
Core Design Contradiction:
ProductivityVSLoss of time

Solution Approach 1:

The patent implements partial conversion of the data set, where only portions of the data are converted to the new schema at any given time. This allows the application to operate with partially converted data, providing limited functionality while avoiding complete system unavailability. The gradual conversion process enables the system to progress toward full new-version functionality without requiring total data conversion before operation.

Inventive Principle:
Principle #16Partial or excessive action

3Reliability

If data conversion is performed in phases, then system availability is maintained, but the upgrade process complexity increases

Engineering Contradiction:
Improvesystem availabilityVSAvoidupgrade process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent introduces a data conversion service as an intermediary component that manages the phased conversion process. This service coordinates between the old and new data schemas, handling the complexity of segment-by-segment conversion while presenting a simplified interface to the application. The conversion service acts as a mediator that abstracts the complexity of gradual conversion from the main application logic.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentEP2021937B1Techniques to perform gradual upgrades
Publication Date: 2017.08.16 MICROSOFT TECHNOLOGY LICENSING LLC
  • EP2021937B1 patent drawingFigure 1
  • EP2021937B1 patent drawingFigure 2
  • EP2021937B1 patent drawingFigure 3

AI summary

Techniques to perform gradual upgrades are described. An apparatus may include a database with a data set for a first version of an application program, and a computing device to couple to the database. The computing device may have a processor and memory, with the memory to store a first version of an application program, an installer program, and a gradual update engine. The processor may execute the installer program to install a second version of the application program, and said gradual update engine to convert the data set to a data schema used by the second version one data segment at a time. Other embodiments are described and claimed.