Software Residual Life Estimation via Prognostic Database
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Current methods fail to accurately estimate the remaining time to failure in software systems due to software aging, leading to inefficient preventive maintenance and potential system crashes, especially in multi-user environments where memory leaks and other resource exhaustion issues are common.
Innovation Solution
A system constructs a prognostic database using historical data from similar software systems to estimate residual life by computing symptom indices and associated residual times, allowing for precise scheduling of preventive actions like software rejuvenation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Ease of operation
If preventive maintenance is scheduled at fixed time intervals, then maintenance actions can be planned in advance, but this approach causes false alarms and missed alarms because it does not account for actual system degradation rates
Solution Approach 1:
The patent transitions from static fixed-interval maintenance scheduling to dynamic condition-based scheduling. The system continuously monitors software aging indicators (memory usage, CPU load, disk space) and adjusts maintenance timing dynamically based on actual degradation rates, enabling maintenance actions to be scheduled precisely when needed rather than following rigid time intervals.
Solution Approach 2:
The patent implements feedback mechanisms by monitoring system state indicators and using this information to adjust maintenance scheduling. The system compares current aging indicators against historical data and thresholds, providing feedback that triggers maintenance actions only when actual degradation reaches critical levels, thereby eliminating false alarms and missed alarms.
2Device complexity
If arbitrary threshold limits are set for resource consumption, then simple alarm mechanisms can be implemented, but this results in increased false alarms or missed alarms depending on threshold selection
Solution Approach 1:
The patent changes the approach from fixed arbitrary thresholds to dynamic adaptive thresholds. The system continuously adjusts alarm thresholds based on monitored software aging indicators and historical failure data, allowing thresholds to adapt to changing system conditions and workload patterns, thereby improving alarm accuracy without significantly increasing complexity.
Solution Approach 2:
The patent replaces simple mechanical threshold-based alarm mechanisms with a more sophisticated statistical analysis system. Instead of relying on fixed numeric thresholds, the system uses pattern recognition, historical data analysis, and machine learning models to predict when resource consumption will reach critical levels, substituting rigid mechanical thresholds with intelligent adaptive decision-making.
3Reliability
If the entire system is rebooted to address resource exhaustion, then all resource leaks can be cleared, but this causes unplanned outages and disrupts service
Solution Approach 1:
The patent applies segmentation by identifying and isolating specific problematic processes or modules causing resource exhaustion rather than rebooting the entire system. The system can selectively terminate or restart only the offending processes, clearing their memory allocations and resource handles while leaving the rest of the system running, thereby resolving resource exhaustion without causing full system outages.
Solution Approach 2:
The patent implements preliminary action by detecting resource exhaustion trends before they lead to complete system failure. The system monitors aging indicators continuously and triggers targeted interventions (process termination, memory cleanup) in advance, preventing the need for full system reboots and avoiding service disruptions.
4Measurement precision
If source code analysis tools are used to detect resource leaks, then accurate leak detection can be achieved, but these tools cannot be used when source code is unavailable for third-party software
Solution Approach 1:
The patent introduces an intermediary approach by using system-level monitoring tools that observe resource consumption patterns without requiring access to source code. The system acts as an intermediary between the software applications and the monitoring infrastructure, collecting telemetry data from process-level metrics, system calls, and resource allocation patterns to detect resource exhaustion and aging effects in third-party software.
Solution Approach 2:
The patent uses copying by creating virtual representations of system state through telemetry data collection and simulation models. Instead of analyzing actual source code, the system copies behavioral patterns from monitored system calls, memory allocation traces, and resource usage metrics to build predictive models that can detect resource leaks and predict failure without requiring source code access.
Data Source
AI summary
One embodiment of the present invention provides a system that estimates residual life of a software system under a software-based failure mechanism. During operation, the system first constructs a prognostic database for the software-based failure mechanism based on a plurality of software systems of the same type as the software system, wherein the prognostic database includes a set of prognostic readings associated with the software-based failure mechanism from the plurality of software systems. Note that a given prognostic reading in the prognostic database comprises: (1) a symptom index, which is a function of one or more variables associated with the software-based failure mechanism; and (2) a residual life, which is the remaining time to a failure under the software-based failure mechanism. Next, the system obtains a symptom index value from the software system which is being monitored. The system then estimates a residual life for the software system under the software-based failure mechanism by comparing the symptom index value with the prognostic readings in the prognostic database.


