Nested Fault Handlers for Distributed Message Debugging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed asynchronous message-driven systems face complexity in handling partial failures and debugging due to the limitations of traditional data flow diagrams and debugging tools, which struggle with multiple concurrent instances and parallel data flows.

Innovation Solution

A diagramming tool allows users to create nested fault handlers within data flow diagrams, associating them with failure components and generating application executables that can handle fault messages and provide error history access, enabling effective failure handling and debugging across multiple threads and execution nodes.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Device complexity

If traditional data flow diagrams are used to describe distributed systems, then the system design can be visualized, but failure handling becomes infeasible due to multiple concurrent instances and parallel data flows

Engineering Contradiction:
Improvefailure handling complexityVSAvoidfailure handling capability
Core Design Contradiction:
Device complexityVSEase of operation

Solution Approach 1:

The patent segments the data flow diagram into multiple independent instances that can be handled separately. Each instance can have its own failure handling mechanism, allowing the system to manage partial failures without needing to diagram all possible combinations of data paths under faults. This segmentation reduces the complexity of failure handling while maintaining the ability to handle concurrent instances.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The patent introduces nested fault handlers within the data flow diagram structure. Fault handlers are nested around specific components or data flows, allowing failure handling to be organized in hierarchical levels. This nesting approach enables the system to handle failures at different granularities without requiring complete enumeration of all failure scenarios, thus reducing complexity while improving handling capability.

Inventive Principle:
Principle #7Nested doll (Nesting)

2Difficulty of detecting and measuring

If traditional stack-based debuggers are used in distributed asynchronous environments, then local stack traces can be obtained, but they become meaningless due to multiple concurrent instances and parallel execution

Engineering Contradiction:
Improvedebugging difficultyVSAvoidstack trace information
Core Design Contradiction:
Difficulty of detecting and measuringVSLoss of information

Solution Approach 1:

The patent introduces causalities as an intermediary mechanism between concurrent instances and the debugger. Causalities track the execution context and message flow across instances, providing a unified view of the distributed system state. This intermediary structure allows traditional debugging tools to function effectively in distributed environments by mediating between the concurrency complexity and the debugging process, preventing loss of contextual information.

Inventive Principle:
Principle #24Intermediary (Mediator)

Solution Approach 2:

The patent implements feedback mechanisms through causality tracking that provide continuous information about the execution state of distributed instances. This feedback allows the debugging system to maintain accurate stack traces and execution context despite concurrent execution, enabling effective debugging without losing information about which instance is executing which code.

Inventive Principle:
Principle #23Feedback

3Reliability

If all combinations of data paths under faults are diagrammed to capture failure locations, then complete failure coverage is achieved, but the diagramming becomes unfeasible in most situations

Engineering Contradiction:
Improvefailure coverageVSAvoiddiagramming complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent applies partial action by implementing failure handling and debugging capabilities without requiring complete enumeration of all failure scenarios. The system provides sufficient failure coverage through selective fault handling at critical points in the data flow, rather than attempting to diagram all possible failure combinations. This partial approach achieves reliable failure handling while keeping the diagramming complexity manageable.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS7664997B2Failure handling and debugging with causalities
Publication Date: 2010.02.16 ZHIGU HLDG
  • US7664997B2 patent drawing
  • US7664997B2 patent drawing
  • US7664997B2 patent drawing

AI summary

Various technologies and techniques are disclosed that improve failure handling and debugging in message driven environments. A diagramming tool allows a user to graphically nest one or more functional components of the data flow diagram to create a fault handler. The fault handler is associated with a failure component to be called when a failure occurs within any one or more of the nested functional components. One or more application executables are synthesized from the data flow diagram. When the nested component is created at runtime, a causality is created for the nested component. The causality has an exception port for receiving fault messages that are unhandled within the nested data flow associated with the nested component. The causality also has a coordination port to allow any messages in the causality context and/or other applications to access the error history and the message coordination history.