Automatic Software Update Deployment via Randomized User Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software update deployment methods lack control and efficiency, particularly when rapid releases are necessary, as they often result in bugs being introduced to a large user base, and manual methods are inadequate for ensuring a representative seed user base or managing the rollout process effectively.

Innovation Solution

A system that generates random values for computers within a population range, allowing for controlled and automatic software update deployment to a defined subset of users, with eligibility determined by a sampling range, and dynamically broadening this range based on problem reports to gradually roll out updates to a larger user base.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Productivity

If software updates are released to a large number of users simultaneously, then the deployment speed is improved, but the risk of bugs affecting a large user base increases

Engineering Contradiction:
Improvedeployment speedVSAvoidbug risk
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The patent segments the user base into different groups (e.g., first group, second group, third group) and releases software updates to them in sequential batches rather than simultaneously to all users. This allows controlled deployment while monitoring for bugs, resolving the contradiction by dividing the deployment process into manageable segments that balance speed and risk.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements preliminary testing by releasing updates to a small first group of users before broader deployment. This preliminary action allows bug detection and resolution before the update reaches larger user populations, maintaining reliability while enabling eventual rapid deployment through pre-validation.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If software updates are released to a limited subset of users, then the bug risk is reduced, but the deployment speed decreases

Engineering Contradiction:
Improvebug riskVSAvoiddeployment speed
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent employs dynamic batch sizes and durations for each release group, adjusting parameters based on bug feedback and system performance. This dynamic approach allows the deployment to start slowly with limited users for safety, then accelerate to broader deployment once validated, resolving the speed-risk tradeoff through adaptive parameter adjustment.

Inventive Principle:
Principle #15Dynamics

Solution Approach 2:

The patent maintains continuous deployment flow by immediately transitioning from testing the first user group to deploying to subsequent groups without interruption. This continuous action ensures that once bugs are resolved in early batches, the deployment momentum carries forward through later batches, maintaining overall deployment speed while preserving safety checks.

Inventive Principle:
Principle #20Continuity of useful action

3Ease of operation

If manual release methods are used to limit update deployment, then the control over seed user base is improved, but the complexity of managing the rollout process increases

Engineering Contradiction:
Improvecontrol over seed user baseVSAvoidrollout management complexity
Core Design Contradiction:
Ease of operationVSDevice complexity

Solution Approach 1:

The patent implements automatic selection of seed users through random assignment to different release batches, eliminating the need for manual curation of test user groups. This self-service mechanism maintains control over deployment pacing while reducing the operational complexity of manually managing and tracking seed user bases.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The patent uses configurable parameters (batch sizes, time durations, user selection criteria) that can be adjusted through simple settings rather than complex manual processes. This parameter-based control allows operators to manage rollout complexity through standardized configurations rather than ad-hoc manual interventions.

Inventive Principle:
Principle #35Parameter changes

4Productivity

If rapid software update deployment is necessary, then the productivity is improved, but the time available for beta testing decreases

Engineering Contradiction:
Improvedeployment speedVSAvoidbeta testing time
Core Design Contradiction:
ProductivityVSDuration of action of moving object

Solution Approach 1:

The patent implements continuous beta testing across multiple sequential user batches rather than requiring a complete beta cycle before any deployment. This partial action approach allows rapid deployment to begin while testing continues in parallel with subsequent batches, eliminating the need to complete full beta testing before deployment starts.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent structures deployment as periodic batches with built-in monitoring and feedback intervals. Each batch serves as a mini-beta test period, allowing continuous validation throughout the deployment process rather than requiring a single extended beta phase, thus enabling rapid overall deployment while maintaining ongoing testing.

Inventive Principle:
Principle #19Periodic action

Data Source

PatentUS7555551B1Automatic controllable deployment of software updates
Publication Date: 2009.06.30 GEN DIGITAL INC
  • US7555551B1 patent drawing
  • US7555551B1 patent drawing
  • US7555551B1 patent drawing

AI summary

Risk of inadvertent introduction of software bugs to a large number of users during a software update is minimized using an automatic mechanism controlling update release. A value-generating module generates a value for a computer, the value falling within a population range of values. A specification module receives update information in an update deployment specification. The information specifies an eligibility window during which a specified portion of the population range is eligible to retrieve an update. The specification can include fields, such as a code selector, a value offset, a start time, etc. An eligibility determination module applies rules to automatically determine eligibility of the computer to retrieve the software update. The computer is determined eligible when the value for the computer falls within the specified portion of the population range for the eligibility window. An update module permits the computer to retrieve the software update based on the eligibility determination.