Distributed Software Version Upgrade via Configuration Flag Promotion
Find Innovative SolutionsGenerate 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
Engineering Contradiction Analysis
1Adaptability or versatility
If software version is changed in distributed system, then software updates are achieved, but service availability is disrupted
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.
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.
2Adaptability or versatility
If configuration data is updated across multiple nodes, then software functionality is improved, but system complexity increases
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.
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.
3Reliability
If rolling upgrade is performed, then service continuity is maintained, but upgrade speed is reduced
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.
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.
Data Source
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.


