Fault Tolerant State Machine for Software Configuration Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

The complexity of modern computer systems and frequent software updates lead to issues during hardware component additions, where software changes are often required, resulting in system disruptions and potential exposure to bugs and vulnerabilities, especially when updates are unsuccessful, causing service disruptions and requiring manual intervention for error resolution.

Innovation Solution

A method and computer program product that utilize opcodes to transition software configurations from one state to another, keeping a persistent record of command executions, allowing for recovery from failures by undoing changes made during the execution of commands, enabling automatic error protection and recovery without manual intervention.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If software configuration changes are made to add new features, then system capabilities are enhanced, but system disruptions occur requiring shutdown and restart

Engineering Contradiction:
Improvesystem capabilitiesVSAvoidservice continuity
Core Design Contradiction:
Adaptability or versatilityVSEase of operation

Solution Approach 1:

The patent creates a checkpoint of the current software configuration state before applying updates. This preliminary action allows the system to capture the existing state and restore it if needed, enabling feature enhancements without mandatory shutdowns and restarts.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism (checkpoint/recovery system) that mediates between software configuration changes and system operation. This intermediary layer allows updates to be applied while maintaining service continuity through automatic recovery capabilities.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If software updates are applied to correct bugs and vulnerabilities, then system reliability is improved, but unsuccessful updates cause service disruptions

Engineering Contradiction:
Improvesystem reliabilityVSAvoidservice continuity
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The patent prepares recovery mechanisms in advance by creating checkpoints before updates are applied. This beforehand cushioning ensures that if updates fail, the system can automatically recover to the pre-update state, protecting service continuity while still allowing reliability improvements.

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

Solution Approach 2:

The patent implements a feedback mechanism that monitors update execution and automatically triggers recovery actions when failures are detected. This closed-loop feedback system ensures that reliability improvements do not come at the cost of service disruption.

Inventive Principle:
Principle #23Feedback

3Difficulty of detecting and measuring

If manual intervention is required for error resolution during updates, then error diagnosis capability is improved, but update process complexity increases

Engineering Contradiction:
Improveerror diagnosisVSAvoidupdate process complexity
Core Design Contradiction:
Difficulty of detecting and measuringVSDevice complexity

Solution Approach 1:

The patent enables the system to perform self-service error recovery by automatically detecting update failures and restoring previous states using stored checkpoints. This eliminates the need for manual intervention in most cases, reducing update process complexity while maintaining effective error handling.

Inventive Principle:
Principle #25Self-service

Data Source

PatentUS8886995B1Fault tolerant state machine for configuring software in a digital computer
Publication Date: 2014.11.11 EMC IP HLDG CO LLC
  • US8886995B1 patent drawing
  • US8886995B1 patent drawing
  • US8886995B1 patent drawing

AI summary

Software configuration changes are made in a digital computer by executing selected opcodes to add new features. When executing each opcode, a persistent record is kept of execution of each elementary command of the opcode. To recover from a failure of execution of an opcode, remediation opcodes are executed for a known error, or else the persistent record of execution is accessed to identify executed commands of the opcode, and the executed commands are reverted in reverse order by undoing changes made to the software configuration by the executed commands of the opcode. The resulting configuration of the digital computer is compared to a backup copy of the configuration existing at the start of execution of the opcode. If the reversion of the executed commands of the opcode has not reproduced the backup configuration, then the configuration of the digital computer is restored to the backup configuration.