Feature Flag Timer Wrapper for Software Performance Regression Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Software performance regressions, which cause software applications to function slower or consume more resources, can be difficult to identify, especially when multiple small updates are made by various development teams, making it challenging to determine the contributing source code changes.

Innovation Solution

A method and system utilizing feature flags and timers to monitor and compare the execution times of different versions of software features, generating alerts when performance regressions are detected, and attributing them to the responsible teams or developers.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If multiple small updates are made by various development teams, then the software application receives continuous improvements and feature extensions, but it becomes difficult to identify which updates are responsible for performance regressions

Engineering Contradiction:
Improvesoftware update frequencyVSAvoidperformance regression identification
Core Design Contradiction:
ProductivityVSDifficulty of detecting and measuring

Solution Approach 1:

The patent segments the software update process by introducing feature flags that divide the application into distinct feature modules. Each feature can be independently enabled or disabled, allowing performance regressions to be isolated to specific segments rather than searching through all updates. The system segments performance data by feature flag state, enabling targeted analysis of which specific feature updates caused performance degradation.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements automated feedback mechanisms that continuously monitor performance metrics and provide real-time feedback when regressions are detected. The system compares performance data across different feature flag states and automatically identifies which feature updates caused performance degradation, feeding this information back to development teams for immediate correction.

Inventive Principle:
Principle #23Feedback

2Reliability

If performance regressions are small (e.g., 20-50 ms) and accumulate incrementally, then the software application maintains functional correctness, but the aggregate regression becomes perceptible only after multiple updates

Engineering Contradiction:
Improvefunctional correctnessVSAvoidperformance degradation accumulation
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent performs preliminary performance analysis by comparing metrics across different feature flag states before regressions become perceptible. The system proactively identifies small performance degradations (20-50 ms) by analyzing timer event log data associated with specific features, allowing teams to address issues before they accumulate into significant performance loss.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent replaces manual performance monitoring and analysis with an automated system that uses timer wrappers and event log analysis. Instead of manually tracking performance across multiple updates, the system automatically instruments code with timers, collects performance data in event logs, and uses algorithms to identify which feature updates caused regressions, substituting automated computational analysis for manual mechanical tracking.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

3Adaptability or versatility

If feature flags are used to manage different versions of features, then the software application gains flexibility in deploying and testing features, but the complexity of tracking and analyzing performance data increases

Engineering Contradiction:
Improvefeature deployment flexibilityVSAvoidperformance tracking system complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent creates a universal performance tracking system that works across all feature flags and features uniformly. The timer wrapper and event log infrastructure provide multi-functional capabilities: they track performance for individual features, aggregate data across features, identify regressions, and attribute performance changes to specific feature updates. This universal system handles the complexity of multiple feature flags through standardized mechanisms rather than requiring separate tracking for each feature.

Inventive Principle:
Principle #6Universality (Multi-functionality)

Data Source

PatentUS11860770B2System and method for performance regression detection
Publication Date: 2024.01.02 ATLASSIAN US INC
  • US11860770B2 patent drawing
  • US11860770B2 patent drawing
  • US11860770B2 patent drawing

AI summary

A method and system for detecting performance regression in a software application is disclosed. The software application comprises a feature flag having at least two states, wherein in a first state a first version of a feature is provided and in a second state a second version of the feature is provided when the software application is executed. The feature flag is further wrapped in a timer for recording the time taken for the corresponding first and second versions of the feature to be provided.