Debug Process Control for Resource Contention in SaaS

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging processes in live applications can cause resource contention, leading to undesirable impacts on other users, such as lock contention and reduced application performance, especially in multi-user scenarios like Software as a Service (SaaS) environments.

Innovation Solution

A method and system that monitor execution to detect resource contention during debugging and control the debug process according to a debug policy, which defines rules for managing the debug process to minimize or eliminate such contentions, including actions like pausing or restricting debugging in critical areas, to ensure minimal impact on other users.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Ease of operation

If debug processing is executed on a live application, then debugging capability is enabled, but resource contention occurs impacting other users

Engineering Contradiction:
Improvedebugging capabilityVSAvoidresource contention
Core Design Contradiction:
Ease of operationVSObject-affected harmful factors

Solution Approach 1:

The patent segments the application execution into distinct states: normal execution mode and debug execution mode. The processor can transition between these modes based on debug tokens, allowing debugging to be isolated to specific threads or processes without affecting the entire application. This segmentation enables debugging capability while minimizing resource contention by limiting debug processing to segmented portions of the system.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent implements dynamic control of debug processing through policy-based management. The debug policy can dynamically adjust debugging behavior based on system conditions, resource availability, and contention levels. The system can dynamically enable or disable debugging for specific threads, adjust debug logging intensity, and modify resource allocation during debugging operations, thereby reducing harmful resource contention while maintaining essential debugging capability.

Inventive Principle:
Principle #15Dynamics

2Reliability

If debug process acquires locks to protect access to objects, then data integrity is maintained, but other requests are blocked

Engineering Contradiction:
Improvedata integrityVSAvoidrequest throughput
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies local quality by making lock acquisition behavior specific to debug contexts rather than universal. The debug policy can specify different locking strategies for different objects, threads, or code regions. Critical data structures can maintain strict locking for integrity, while less critical areas can use more permissive locking or locking avoidance techniques during debugging, thereby maintaining data integrity where needed while preserving request throughput in other areas.

Inventive Principle:
Principle #3Local quality

Solution Approach 2:

The patent introduces an intermediary layer between the debug process and shared resources through policy-based control mechanisms. The debug policy acts as a mediator that intercepts lock requests from the debug process and applies intelligent routing: some requests are granted locks, others are deferred, and some are redirected to alternative access patterns. This intermediary approach maintains data integrity for critical resources while allowing non-critical resources to remain accessible to other requests.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Loss of information

If debug information is collected from all threads, then comprehensive debugging data is obtained, but system performance deteriorates

Engineering Contradiction:
Improvedebugging information completenessVSAvoidsystem performance
Core Design Contradiction:
Loss of informationVSProductivity

Solution Approach 1:

The patent implements partial action by collecting debug information selectively rather than comprehensively from all threads. The debug policy determines which threads, code regions, or types of events should be instrumented for debugging based on the specific debugging objectives. This partial collection approach obtains sufficient debugging information to diagnose issues while avoiding the performance penalty of instrumenting every thread and event in the system.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The patent uses parameter changes to adjust debug information collection based on system conditions. The debug policy can modify collection parameters such as sampling rate, buffer size, detail level, and activation thresholds dynamically. During high-load periods, the system reduces collection intensity; during low-load periods or when specific issues are suspected, collection intensity increases. This parameter-based control maintains information completeness for critical debugging while adapting system performance to current conditions.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS10303580B2Controlling debug processing
Publication Date: 2019.05.28 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US10303580B2 patent drawing
  • US10303580B2 patent drawing
  • US10303580B2 patent drawing

AI summary

Execution of a debug process on a thread of an application is monitored to detect resource contention caused by the debug process. In response to detecting a contention for a resource caused by the debug process, execution of the debug process is controlled in accordance with a debug policy. The debug policy defines a control action to be implemented based on one or more rules.