Distributed Application Configuration Updates Without Downtime

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

In distributed systems, configuration updates for applications managed by a central server often require users to download and install updated applications, leading to cumbersome processes and outdated endpoints, as existing methods necessitate restarting applications for changes, causing downtime.

Innovation Solution

A configuration deployment system that stores settings in a repository, allows administrators to view and set configurations, monitors for updates, verifies their validity, applies changes without restarting applications, and rolls back detrimental changes, enabling updates without system downtime.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the server updates the entire application for configuration changes, then the configuration settings are updated, but the user experience deteriorates due to required downloads and installations

Engineering Contradiction:
Improveconfiguration update completenessVSAvoiduser convenience
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent segments the application into executable code and configuration settings, allowing independent updates of configuration files without requiring full application redistribution. The configuration is stored as separate files (XML, JSON, YAML, properties) that can be updated and deployed independently from the application binary.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent extracts configuration settings from the application executable and places them in external configuration files stored in a version control system. This extraction allows configuration updates to be performed without modifying or redistributing the application code itself.

Inventive Principle:
Principle #2Taking out (Extraction)

2Reliability

If the application is restarted to apply configuration changes, then the new settings take effect, but system availability deteriorates due to downtime

Engineering Contradiction:
Improveconfiguration application effectivenessVSAvoidsystem availability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent implements dynamic configuration loading where the application reads configuration files at runtime rather than requiring restart. The configuration management system monitors for changes and triggers application-wide or module-specific reloads only when necessary, maintaining continuous operation during configuration updates.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent ensures continuous application operation during configuration updates by implementing hot-swappable configuration files. The application maintains its running state while configuration parameters are updated in the background, and changes are applied without interrupting service delivery.

Inventive Principle:
Principle #20Continuity of useful action

3Speed

If configuration changes are deployed immediately, then the updates are applied quickly, but system stability deteriorates due to potential erroneous changes

Engineering Contradiction:
Improveconfiguration deployment speedVSAvoidsystem stability
Core Design Contradiction:
SpeedVSReliability

Solution Approach 1:

The patent implements preliminary validation of configuration changes before deployment. The system checks configuration syntax, validates parameter ranges, and verifies compatibility with the running application version before applying changes, preventing erroneous configurations from causing system instability.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent incorporates feedback mechanisms that monitor system performance after configuration changes are applied. If detrimental effects are detected, the system automatically triggers rollback procedures to restore previous stable configurations, providing a safety net against unstable changes.

Inventive Principle:
Principle #23Feedback

Data Source

PatentUS10560549B1Configuration updates of distributed applications
Publication Date: 2020.02.11 UBER TECHNOLOGIES INC
  • US10560549B1 patent drawing
  • US10560549B1 patent drawing
  • US10560549B1 patent drawing

AI summary

A configuration deployment system stores configuration settings for a plurality of applications disposed at one or more computing hosts. The configuration settings are stored in a versioned repository and are organized in a hierarchical namespace structure. To deploy the configuration settings, a deployment service monitors the configuration settings at the configuration repository and identifies when a new configuration setting or a new version of an existing configuration setting is available in the configuration repository. The new configuration setting is transmitted to a computing device for use in an application. The application applies the changed configuration setting upon verifying that the change is compatible with the application.