Model Checker for Distributed Concurrency Bug Detection

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Distributed concurrency bugs in cloud computing systems cause system crashes, failed jobs, node/cluster unavailability, and data inconsistency due to nondeterministic ordering of concurrent events, making it difficult to manage complex cloud computing systems effectively.

Innovation Solution

A method for detecting distributed concurrency bugs using a computing device that identifies nodes and messages in a distributed computing cluster, determines a set of orderings, and removes redundant permutations using algorithms like state symmetry, disjoint-update independence, and zero-crash-impact reordering to prioritize and optimize DC bug detection testing.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all possible message orderings are tested for DC bug detection, then detection completeness is improved, but testing time increases significantly

Engineering Contradiction:
ImproveDC bug detection completenessVSAvoidtesting time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The patent extracts and removes redundant message orderings from the complete set of permutations using algorithms like state symmetry reduction, disjoint-update independence, and zero-crash-impact reordering. This extraction process eliminates unnecessary test cases while preserving detection of all actual DC bugs, directly resolving the contradiction between completeness and time consumption.

Inventive Principle:
Principle #2Taking out (Extraction)

Solution Approach 2:

The model checker implements multiple reduction algorithms that serve universal purposes: state symmetry reduction handles symmetrical node states, disjoint-update independence handles independent variable updates, and zero-crash-impact reordering handles non-critical message reorderings. These multi-functional algorithms collectively reduce the test space across different bug scenarios while maintaining comprehensive detection capability.

Inventive Principle:
Principle #6Universality (Multi-functionality)

2Reliability

If the complete set of message orderings is used for testing, then all DC bugs can be detected, but the complexity of the testing process increases

Engineering Contradiction:
ImproveDC bug detection capabilityVSAvoidtesting process complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent segments the monolithic testing process into distinct phases: generating the complete permutation set, applying multiple independent reduction algorithms (state symmetry, disjoint-update independence, zero-crash-impact reordering), and executing tests on the reduced set. This segmentation makes the complex process more manageable and systematic while preserving detection completeness.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The reduction algorithms are applied as preliminary actions before actual bug detection testing. By pre-processing the message ordering set to remove redundancies beforehand, the system simplifies the subsequent testing phase without compromising the ability to detect all DC bugs, thus reducing overall process complexity.

Inventive Principle:
Principle #10Preliminary action

3Productivity

If redundant message orderings are removed using reduction algorithms, then testing efficiency is improved, but the risk of missing certain bug scenarios increases

Engineering Contradiction:
Improvetesting efficiencyVSAvoidbug detection coverage
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The model checker employs feedback mechanisms where each reduction algorithm's results are validated against the system's state transitions and message processing logic. The algorithms continuously refine the test set by checking whether removed orderings would have led to different system states or bug conditions, ensuring that detection coverage is maintained while improving efficiency.

Inventive Principle:
Principle #23Feedback

Solution Approach 2:

The patent replaces exhaustive mechanical testing of all permutations with intelligent algorithmic selection. Instead of systematically testing every possible message ordering, the system uses logical algorithms (state symmetry, disjoint-update independence, zero-crash-impact reordering) to selectively identify and test only the critical orderings, thereby substituting brute-force mechanics with smarter computation.

Inventive Principle:
Principle #28Mechanics substitution (Replace mechanical system)

Data Source

PatentUS10599552B2Model checker for finding distributed concurrency bugs
Publication Date: 2020.03.24 FUTUREWEI TECHNOLOGIES INC
  • US10599552B2 patent drawing
  • US10599552B2 patent drawing
  • US10599552B2 patent drawing

AI summary

Described herein are systems and methods for distributed concurrency (DC) bug detection. The method includes identifying a plurality of nodes in a distributed computing cluster; identifying a plurality of messages to be transmitted during execution of an application by the distributed computing cluster; determining a set of orderings of the plurality of messages for DC bug detection, the set of orderings determined based upon the plurality of nodes and the plurality of messages; removing a subset of the orderings from the set of orderings based upon one or more of a state symmetry algorithm, a disjoint-update independence algorithm, or a zero-crash-impact reordering algorithm; and performing DC bug detection testing using the set of orderings after the subset of the orderings is removed from the set of orderings.