Dynamic Post-Change Computing System Evaluation
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Computing systems often experience performance issues due to software updates, which can contain bugs, leading to diminished performance or system failure, and human intervention may introduce errors in diagnosis and remediation.
Innovation Solution
A computing system is configured to self-identify changes in functionality, run diagnostic tests, and determine a relative performance score, automatically throttling data transactions or rolling back updates if the score falls below a threshold, thereby mitigating performance issues without human intervention.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software updates are installed to maintain security and improve functionality, then system security and functionality are improved, but system performance may deteriorate due to bugs in the updates
Solution Approach 1:
The system performs preliminary actions by implementing a canary deployment mechanism where a subset of instances receives the software update before full deployment. This allows early detection of performance issues before they affect the entire system, resolving the contradiction by enabling security updates while maintaining overall system performance through staged rollout.
Solution Approach 2:
The system changes parameters by dynamically adjusting the proportion of instances running updated versus non-updated software based on performance monitoring. When performance degradation is detected in the canary group, the system rolls back the update for those instances while maintaining updates for others, thus balancing security improvements with performance preservation.
2Ease of repair
If manual diagnosis and remediation are performed by human operators, then system issues can be addressed, but human error may introduce additional mistakes and delay resolution
Solution Approach 1:
The system implements self-service by automatically detecting performance degradation, comparing metrics between canary and control groups, and triggering rollbacks without human intervention. This eliminates human error in diagnosis and remediation while maintaining the capability to resolve issues, thus improving both remediation accuracy and reliability.
Solution Approach 2:
The system establishes continuous feedback loops where performance metrics from canary instances are monitored and compared against control instances in real-time. This automated feedback mechanism enables the system to detect issues and initiate corrective actions automatically, replacing manual diagnosis with reliable automated decision-making.
3Speed
If software updates are deployed to all instances simultaneously, then deployment speed is improved, but the risk of widespread performance degradation increases
Solution Approach 1:
The system applies segmentation by dividing instances into distinct groups: canary instances that receive updates first and control instances that run existing software. This segmentation allows controlled deployment where only a subset is exposed to potential bugs, preventing widespread performance degradation while maintaining relatively fast deployment through parallel processing of multiple canary groups.
Solution Approach 2:
The system implements beforehand cushioning by creating a buffer zone with canary instances that absorb the potential harmful effects of buggy updates. These canary instances serve as a cushion that protects the majority of the system from widespread performance degradation, allowing safe testing before full deployment.
4Measurement precision
If diagnostic tests are run frequently to detect performance issues early, then detection accuracy is improved, but system overhead and resource consumption increase
Solution Approach 1:
The system applies partial action by running diagnostic tests only on canary instances rather than all instances, and only when performance thresholds are approached. This selective monitoring achieves sufficient detection accuracy for early warning while minimizing system overhead by avoiding redundant testing on control instances that are known to be stable.
Data Source
AI summary
A performance-monitoring system is configured to determine whether a diminished performance of a computing system warrants prompt remedial action by generating a score indicative of various aspects of the computing system. In some examples, the performance-monitoring system identifies a change to a computing system comprising at least one server running two or more applications; runs one or more diagnostic tests on each of the two or more applications to collect additional performance data; determines, based on the additional performance data, a relative performance score for each of the two or more applications, wherein the relative performance score for a respective application indicates at least an effect of the change on an ability of a user to use the respective application to perform one or more user operations; determines that the performance score is less than a threshold score; and automatically reduces a rate of transaction requests sent to the server.


