Software Circuit Breaker for Application Server Crash Prevention

Resolve Bottlenecks,
Find Innovative Solutions
Generate 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

VSEngineering 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

Engineering Contradiction:
Improveperformance monitoring capabilityVSAvoidavailable server resources
Core Design Contradiction:
ReliabilityVSQuantity of substance

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.

Inventive Principle:
Principle #10Preliminary action

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.

Inventive Principle:
Principle #16Partial or excessive action

2Measurement precision

If the monitoring program uses additional server resources, then monitoring precision is improved, but the risk of application server crash increases

Engineering Contradiction:
Improveperformance monitoring accuracyVSAvoidserver stability
Core Design Contradiction:
Measurement precisionVSReliability

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.

Inventive Principle:
Principle #15Dynamics

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.

Inventive Principle:
Principle #35Parameter changes

3Productivity

If resource-intensive monitoring processes are executed continuously, then monitoring coverage is improved, but service continuity is compromised during high resource consumption periods

Engineering Contradiction:
Improvemonitoring coverageVSAvoidservice continuity
Core Design Contradiction:
ProductivityVSDuration of action of stationary object

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.

Inventive Principle:
Principle #9Preliminary anti-action

Data Source

PatentUS10324784B2Mitigating crashes of an application server executing a monitoring agent
Publication Date: 2019.06.18 NEW RELIC INC
  • US10324784B2 patent drawing
  • US10324784B2 patent drawing

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.