Predictive Fault Injection System for Distributed Software

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing Software Implemented Fault Injection (SWIFI) systems face challenges in precisely identifying the state of a distributed system for fault injection, resulting in significant latency and a 'blind spot' where faults cannot be injected, particularly in large-scale cloud platforms.

Innovation Solution

A fault injection system that uses a predictive time model to estimate when states and transitions occur in a distributed system, allowing for precise fault injection without the latency issues of traditional event-based approaches, utilizing distributed tracing technology and temporal estimation to identify optimal injection times.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional event-based SWIFI systems are used to inject faults, then fault injection can be performed, but significant latency occurs between state identification and actual fault injection

Engineering Contradiction:
Improvefault injection accuracyVSAvoidinjection latency
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system pre-calculates and stores the expected duration of each state in a lookup table during system initialization or offline analysis. When a state is identified for fault injection, the pre-computed duration is immediately retrieved and used to schedule the fault injection timing, eliminating the need for real-time state monitoring and calculation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces a timing buffer mechanism that accounts for the latency between state identification and fault injection. By predicting state durations in advance and building in timing margins, the system ensures faults are injected at the correct moment despite the inherent delay in the injection process.

Inventive Principle:
Principle #11Beforehand cushioning (Prior cushioning)

2Adaptability or versatility

If event-based approaches are used for fault injection, then faults can be injected into distributed systems, but blind spots are created during which no faults can be injected

Engineering Contradiction:
Improvefault injection coverageVSAvoidblind spot duration
Core Design Contradiction:
Adaptability or versatilityVSLoss of time

Solution Approach 1:

The system pre-determines all possible state durations and stores them in advance. This allows the fault injection mechanism to operate continuously by scheduling injections based on pre-computed timing information, eliminating gaps where no faults can be injected.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

By using pre-calculated state durations to continuously schedule fault injections, the system maintains uninterrupted fault injection capability. The timing buffer mechanism ensures that injections are always scheduled at appropriate moments, eliminating blind spots and maintaining continuous test coverage.

Inventive Principle:
Principle #20Continuity of useful action

3Measurement precision

If real-time event monitoring is implemented to identify states for fault injection, then precise state identification is achieved, but system complexity increases

Engineering Contradiction:
Improvestate identification accuracyVSAvoidsystem complexity
Core Design Contradiction:
Measurement precisionVSDevice complexity

Solution Approach 1:

The system performs state duration analysis offline or during initialization, storing results in lookup tables. At runtime, only simple table lookups are required based on current state identification, dramatically reducing the computational complexity while maintaining precise state identification.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent creates a simplified temporal model that mirrors the actual system states with pre-computed durations. This model serves as a lightweight proxy that captures essential timing information without requiring complex real-time analysis of the actual distributed system.

Inventive Principle:
Principle #26Copying

Data Source

PatentUS11307947B2Fault injection system and method of fault injection
Publication Date: 2022.04.19 HUAWEI CLOUD COMPUTING TECHNOLOGIES CO LTD
  • US11307947B2 patent drawing
  • US11307947B2 patent drawing
  • US11307947B2 patent drawing

AI summary

A fault injection system for a software system, wherein the software system includes executable commands, events generated by commands and states representing a state of a state machine between two events, wherein a fault injection rule database is configured to provide a rule for injecting a selected fault, wherein the rule provides a fault injection decision in the occurrence of a selected command, a selected state during which fault injection is to occur and a condition under which fault injection is to occur; an estimator module is configured to determine when the selected state will occur related to the execution of the selected command and to provide a duration of a state as a time interval for fault injection, wherein the determination is based on a predictive time model; and an injector module is configured to execute the selected command and to inject the selected fault during the time interval.