Loop Edge Snapshotting for Event-Driven Application Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Debugging production anomalies in event-driven applications is challenging due to limited logs and complex files, making it difficult to determine when to take snapshots without disrupting the application's processes, which can affect throughput and complexity.

Innovation Solution

A method that takes snapshots at loop edges of event loops during an event polling stage, measuring the snapshot time against the event polling stage time to decide whether the main or alternate thread should take a new snapshot, minimizing process disruption and improving debugging clarity.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Difficulty of detecting and measuring

If snapshots are taken frequently to improve debugging clarity, then debugging complexity is reduced, but application throughput is impacted

Engineering Contradiction:
Improvedebugging clarityVSAvoidapplication throughput
Core Design Contradiction:
Difficulty of detecting and measuringVSProductivity

Solution Approach 1:

The system implements periodic snapshotting at event polling stages, taking snapshots at regular intervals defined by the event loop structure. This periodic approach ensures debugging information is captured systematically without requiring continuous snapshotting, thus maintaining application throughput while providing sufficient debugging clarity.

Inventive Principle:
Principle #19Periodic action

Solution Approach 2:

The snapshot mechanism serves itself by automatically capturing state information at event polling stages without manual intervention. The system self-regulates the snapshotting process based on event loop detection, eliminating the need for external control and reducing overhead on application performance.

Inventive Principle:
Principle #25Self-service

2Difficulty of detecting and measuring

If snapshots are taken at arbitrary points to improve debugging capability, then issue isolation is improved, but process disruption increases

Engineering Contradiction:
Improveissue isolationVSAvoidprocess disruption
Core Design Contradiction:
Difficulty of detecting and measuringVSEase of operation

Solution Approach 1:

The system prepares for snapshotting by pre-identifying event polling stages as optimal capture points. By detecting these stages in advance and planning snapshots around them, the system avoids interrupting critical execution paths, thus improving issue isolation while minimizing process disruption.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The event polling stage acts as an intermediary between the snapshot mechanism and the application execution. Snapshots are taken through this intermediary layer, which provides a natural pause point that facilitates state capture without directly disrupting the main application flow, thereby improving issue isolation with minimal disruption.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If snapshot timing is optimized to reduce overhead, then application performance is maintained, but snapshot precision may be reduced

Engineering Contradiction:
Improveapplication performanceVSAvoidsnapshot precision
Core Design Contradiction:
ProductivityVSMeasurement precision

Solution Approach 1:

The system changes the timing parameter of snapshot capture by aligning it with event polling stages rather than using fixed intervals or arbitrary points. This parameter adjustment optimizes the balance between performance and precision, as event polling stages represent natural synchronization points that provide both low overhead and meaningful state information.

Inventive Principle:
Principle #35Parameter changes

Data Source

PatentUS11734129B2Loop edge snapshotting
Publication Date: 2023.08.22 INTERNATIONAL BUSINESS MACHINE CORPORATION
  • US11734129B2 patent drawing
  • US11734129B2 patent drawing
  • US11734129B2 patent drawing

AI summary

A method includes accessing, by a computing device, an event machine of an application running on a user device; determining, by the computing device, an event polling stage of the event machine is occurring; measuring, by the computing device, an event polling stage time of the event polling stage; causing, by the computing device, a thread of the application to take a snapshot of the application in response to determining the event polling stage; measuring, by the computing device, a snapshot time for the snapshot of the application; determining, by the computing device, whether the snapshot time is less than or equal to the event polling stage time; causing, by the computing device, the thread of the application to take a new snapshot in response to determining a new event polling stage; and causing, by the computing device, an alternate thread of the application to take the new snapshot.