Multipathing Code Execution for Severity-Based Failure Recovery
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software systems face challenges in handling code path failures, leading to incomplete operations, resource hogging, and potential outages due to exhaustive retry logic, especially when multiple code paths result in errors.
Innovation Solution
Implement multipathing code with multiple, separate paths designed to perform similar functionality, detect errors in each path, identify the path with the lowest error severity, and resume execution using that path, utilizing saved state information to revert execution to a previous point and switch to an error-free path.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If exhaustive retry logic is used to handle code path failures, then reliability is improved, but resource consumption increases and system performance deteriorates
Solution Approach 1:
The system segments the single code path into multiple alternative paths (Path 1, Path 2, Path 3, etc.), each capable of performing the same functionality. When a failure occurs in one path, the system can switch to another segment without exhausting resources on the failed path.
Solution Approach 2:
The system dynamically selects which code path to execute based on real-time conditions and failure states. The path selection is not fixed but adapts according to the severity of errors and current system state, allowing the system to move from static retry logic to dynamic path switching.
2Reliability
If exhaustive retry logic is used to handle code path failures, then reliability is improved, but system stability deteriorates due to potential outages
Solution Approach 1:
The system performs preliminary actions by pre-defining multiple alternative code paths and establishing failure severity classifications before failures occur. When a failure happens, the system can immediately switch to a pre-prepared alternative path rather than attempting exhaustive retries on the failed path.
Solution Approach 2:
The system converts the harmful effect of path failures into a beneficial path selection opportunity. By classifying failures by severity and using them to trigger switches to alternative paths, the system transforms failure events into decisions that improve overall system stability and continuity.
3Adaptability or versatility
If multiple code paths are implemented to handle failures, then adaptability is improved, but device complexity increases
Solution Approach 1:
The system applies local quality by assigning different characteristics to different code paths based on their failure severity profiles. Each path is optimized for specific failure conditions, with Path 1 being the primary path and subsequent paths serving as alternatives for specific failure scenarios, rather than creating uniformly complex structures.
Solution Approach 2:
The system manages complexity by changing the parameter of path selection based on failure severity classification. Instead of hardcoding complex decision logic, the system uses parameter-based selection where the failure severity level determines which path to execute, simplifying the overall control structure.
4Reliability
If exhaustive retry logic is used, then reliability is improved, but productivity deteriorates due to incomplete operations
Solution Approach 1:
The system skips exhausted or failed code paths and rushes through to alternative paths that are more likely to succeed. By identifying when a path has failed and immediately switching to an alternative rather than continuing to retry the failed path, the system maintains productivity while ensuring operation completion.
Data Source
AI summary
Multipathing code execution based on failure severity includes: detecting a corresponding error in each path of a plurality of paths of a portion of multipathing code of an application; identifying, from the plurality of paths, a path having a lowest error severity; and resuming execution of the application using the identified path.


