Scalable Configuration System Using Instance Properties

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing systems face scalability issues in managing large numbers of program definitions and executing instances in distributed systems, particularly in providing shared and separate dynamic configuration and context data without interrupting instance execution.

Innovation Solution

A scalable configuration and context system using instance properties that represent configuration and context data, allowing for consistent retrieval and updates without configuration files or databases, leveraging episodic execution and message-based data management to support large-scale distributed systems.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If configuration files or databases are used to manage configuration and context data, then data retrieval and updates are straightforward, but the system cannot scale to manage millions of program definitions and executing instances

Engineering Contradiction:
ImprovescalabilityVSAvoidsystem complexity
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments configuration and context data management by associating data with individual program instance lifecycles. Each program instance maintains its own configuration data locally, eliminating the need for centralized configuration files or databases. This segmentation allows the system to scale to millions of instances while keeping each instance's data management simple and self-contained.

Inventive Principle:
Principle #1Segmentation

2Adaptability or versatility

If centralized configuration files or databases are used, then data consistency is easier to maintain, but the system cannot provide shared and separate dynamic configuration data for millions of instances

Engineering Contradiction:
Improvedynamic configuration capabilityVSAvoidsystem throughput
Core Design Contradiction:
Adaptability or versatilityVSProductivity

Solution Approach 1:

The system implements dynamic configuration by allowing program instances to update their own configuration data during execution. Configuration data is tied to instance lifecycles, enabling each instance to have customized, dynamic configuration without requiring centralized management. This dynamic approach supports both shared and separate configuration data for different instances simultaneously.

Inventive Principle:
Principle #15Dynamics

3Ease of operation

If configuration data is stored externally in files or databases, then updates can be performed centrally, but instance execution may be interrupted during updates

Engineering Contradiction:
Improveconfiguration update easeVSAvoidinstance execution continuity
Core Design Contradiction:
Ease of operationVSReliability

Solution Approach 1:

The system merges configuration data storage with program instance execution by embedding configuration data directly within each instance's memory space. Configuration updates occur in-place during instance execution without requiring external file I/O or database operations. This integration ensures instance execution continuity while allowing configuration updates to be performed seamlessly.

Inventive Principle:
Principle #5Merging (Combining)

4Quantity of substance

If traditional configuration management is used, then data retrieval requires file I/O or database queries, but this becomes impractical for millions of instances

Engineering Contradiction:
Improvenumber of program instancesVSAvoiddata retrieval time
Core Design Contradiction:
Quantity of substanceVSLoss of time

Solution Approach 1:

The system performs preliminary action by loading configuration data into each program instance's memory during instance creation. Configuration data is pre-positioned in accessible memory locations before execution begins. This preliminary loading eliminates the need for repeated file I/O or database queries during runtime, enabling fast data retrieval for millions of concurrently executing instances.

Inventive Principle:
Principle #10Preliminary action

Data Source

PatentUS9256478B2System for scalable configuration and context
Publication Date: 2016.02.09 MICROSOFT TECHNOLOGY LICENSING LLC
  • US9256478B2 patent drawing
  • US9256478B2 patent drawing
  • US9256478B2 patent drawing

AI summary

Instance properties are defined for instances of an application. During episodes of the instances, the values of the instance properties are populated. Other instances read the values of the instance properties without requiring the instance to run. If the value of an instance property is not populated, then a new episode of the instance is executed to populate the missing values. Instance properties may be grouped into property bags. An instance may populate the values of instance properties in a property bag atomically during one episode using a multi-set message. Other instances may read the values of the property bag instance properties using a multi-get request.