Distributed Software Version Upgrade via Configuration Flag Promotion

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing distributed systems face challenges in seamlessly upgrading software versions while maintaining continuous service operations, especially when configuration data needs to be managed effectively across multiple nodes.

Innovation Solution

The solution involves a node in a distributed system modifying from a first software version to a second version based on initial configuration flag values, then switching to operate with target values after receiving a promotion indication, ensuring uninterrupted service during the upgrade process.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software version is changed in distributed system, then software updates are achieved, but service availability is disrupted

Engineering Contradiction:
Improvesoftware version updateVSAvoidservice availability
Core Design Contradiction:
Adaptability or versatilityVSReliability

Solution Approach 1:

The upgrade process is segmented into distinct phases: configuration flag promotion phase and value switching phase. Nodes can be upgraded in stages with configuration flags managed separately from value deployment, allowing partial adoption of new versions while maintaining old version functionality and ensuring continuous service availability.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Configuration flags are promoted and prepared in advance before actual value switching occurs. The system pre-promotes configuration flags to their target values in a controlled manner, ensuring that when the switch happens, all nodes are ready for the new version, minimizing service disruption.

Inventive Principle:
Principle #10Preliminary action

2Adaptability or versatility

If configuration data is updated across multiple nodes, then software functionality is improved, but system complexity increases

Engineering Contradiction:
Improveconfiguration data updateVSAvoidsystem complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

Configuration flags act as intermediaries between the upgrade process and actual software behavior. Instead of directly modifying software values across nodes, the system uses configuration flags as a mediating layer that coordinates the upgrade process, simplifies node management, and ensures consistent state transitions.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The system changes the state of configuration flags (from initial to target values) to control software behavior during upgrades. By managing upgrade complexity through parameter changes in configuration flags rather than direct software modification, the system reduces operational complexity while achieving functional improvements.

Inventive Principle:
Principle #35Parameter changes

3Reliability

If rolling upgrade is performed, then service continuity is maintained, but upgrade speed is reduced

Engineering Contradiction:
Improveservice continuityVSAvoidupgrade speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

Configuration flags are promoted and validated in advance before the actual value switching. This preliminary preparation ensures that when the upgrade executes, nodes can switch values quickly without delays, as all preparatory checks and configurations are already in place.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system implements feedback mechanisms to track configuration flag promotion status and coordinate node upgrades. By monitoring which nodes have promoted their configuration flags and using this feedback information, the system can optimize the upgrade sequence to minimize service disruption while maintaining efficient upgrade speed.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS20250028526A1Changing software versions operating based on configuration data deployed in a distributed system while providing continued services
Publication Date: 2025.01.23 YUGABYTEDB INC
  • US20250028526A1 patent drawing
  • US20250028526A1 patent drawing
  • US20250028526A1 patent drawing

AI summary

Aspects of the present disclosure facilitate changing software versions operating based on configuration data deployed in a distributed system while providing continued services. In one embodiment, a node of the distributed system operates a first version of a software module based on a first set of values for a set of configuration flags. Upon receiving a change request to change the software module to a second version and specifying a second set of values for the set of configuration flags, the node modifies the software module from the first version to the second version and operates the second version of the software module based on the first set of values for the set of configuration flags. After receiving an indication to promote the set of configuration flags, the node operates the second version of the software module based on the second set of values for the configuration flags.