Software Circuit Breaker for Application Server Crash Prevention
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Monitoring programs for application servers often consume additional resources, increasing the risk of crashes during high usage periods, leading to service disruptions.
Innovation Solution
A software circuit breaker that monitors free memory and garbage collection duration on application servers, anticipating crashes by comparing these metrics to thresholds and disabling resource-intensive processes of the monitoring agent to free up resources for the application.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If a monitoring program is executed on the application server to monitor server performance, then the ability to detect performance issues is improved, but the server's available resources decrease and crash risk increases
Solution Approach 1:
The circuit breaker performs preliminary assessment of server health metrics (memory usage, garbage collection duration, thread pool status) before crashes occur. When thresholds are exceeded, it proactively disables the monitoring agent, preventing resource exhaustion before it leads to server failure.
Solution Approach 2:
The system applies partial action by selectively disabling only the monitoring agent processes when resource thresholds are exceeded, rather than shutting down the entire server. This allows the application to continue running while reducing the monitoring overhead to prevent crashes.
2Measurement precision
If the monitoring program uses additional server resources, then monitoring precision is improved, but the risk of application server crash increases
Solution Approach 1:
The monitoring system transitions from a static always-on state to a dynamic state where the agent is enabled or disabled based on real-time server conditions. The circuit breaker continuously evaluates metrics and adjusts the monitoring agent's operational state accordingly, optimizing the balance between monitoring precision and server stability.
Solution Approach 2:
The system changes the operational parameter of the monitoring agent from 'always active' to 'conditionally active' based on threshold parameters. When memory usage, garbage collection duration, or thread pool metrics exceed defined thresholds, the agent's state parameter changes from enabled to disabled, preventing resource exhaustion.
3Productivity
If resource-intensive monitoring processes are executed continuously, then monitoring coverage is improved, but service continuity is compromised during high resource consumption periods
Solution Approach 1:
The circuit breaker implements preliminary anti-action by disabling the monitoring agent before resource exhaustion leads to server failure. By anticipating potential crashes based on trending metrics, the system preemptively reduces monitoring activity, preventing the very crashes that would interrupt service continuity.
Data Source
AI summary
A software circuit breaker observes an amount of free memory available in an application server and a duration of a garbage collection process performed by the application server. The application server executes an agent comprising a plurality of processes for monitoring performance of the application server. Based on the amount of free memory and duration of the garbage collection process, the circuit breaker anticipates a likely crash of the application server. In response to anticipating the likely crash, the circuit breaker disables one or more processes of the agent.

