State Machine Framework for Reliable Data Storage Command Execution

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current data storage systems lack efficient mechanisms for reliably processing and managing data storage system management commands, particularly in handling errors and system crashes, which can lead to inconsistent states and data integrity issues.

Innovation Solution

The implementation of a state machine framework that generates self-persisting, transactional state machines to manage data storage system commands, allowing for automatic determination of state transitions, rollback processes, and persistent storage of internal state information to ensure atomicity and reliability.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional command processing mechanisms are used in data storage systems, then the system structure remains simple, but reliability and consistency of command execution deteriorate due to inability to handle errors and system crashes effectively

Engineering Contradiction:
Improvecommand execution reliabilityVSAvoidprocessing mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The command processing mechanism is segmented into discrete atomic states representing individual tasks. Each state encapsulates a specific operation or checkpoint, allowing the system to break down complex commands into manageable, independently verifiable units that can be executed and tracked reliably.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The state machine framework performs preliminary actions by pre-defining all possible states and transitions before command execution. Error handling and rollback procedures are prepared in advance through predefined transition paths, enabling the system to respond to failures without ad-hoc decision-making during critical execution phases.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If manual state transition management is implemented, then control over processing flow is improved, but ease of operation deteriorates due to increased complexity in managing state transitions and rollback processes

Engineering Contradiction:
Improvetransaction atomicityVSAvoidstate machine management ease
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The state machine framework provides self-service by automatically managing state transitions and rollback operations based on predefined rules. When a task completes or fails, the system autonomously determines the next state and executes appropriate actions without requiring manual intervention, thereby maintaining transaction atomicity while simplifying operation.

Inventive Principle:
Principle #25Self-service

Solution Approach 2:

The framework implements feedback mechanisms where the completion status of each task automatically triggers the next state transition. This closed-loop control ensures that state transitions occur only when appropriate conditions are met, maintaining reliability while reducing manual management overhead through automated decision-making.

Inventive Principle:
Principle #23Feedback

3Reliability

If comprehensive error handling and rollback mechanisms are added, then data consistency is improved, but device complexity increases due to additional processing overhead

Engineering Contradiction:
Improvedata consistencyVSAvoidprocessing mechanism complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

Error handling and rollback capabilities are segmented into discrete states within the state machine. Each state encapsulates specific error handling logic and rollback procedures, allowing comprehensive error management to be distributed across multiple simple, focused units rather than concentrated in a single complex mechanism.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The framework merges error handling, rollback procedures, and normal execution flow into a unified state machine model. By combining these functions into a single coherent framework with standardized transitions, the system achieves comprehensive data consistency protection without the overhead of multiple separate error handling mechanisms.

Inventive Principle:
Principle #5Merging (Combining)

4Reliability

If persistent storage of state information is implemented, then system recovery capability is improved, but use of energy and storage resources increases

Engineering Contradiction:
Improvesystem recovery capabilityVSAvoidstorage resource consumption
Core Design Contradiction:
ReliabilityVSUse of energy by moving object

Solution Approach 1:

The framework implements partial persistence by storing state information selectively based on the criticality of each state. Only essential state information that is necessary for system recovery is persisted to storage, while less critical transient state data remains in memory. This approach provides adequate recovery capability without the full overhead of persisting all state information.

Inventive Principle:
Principle #16Partial or excessive action

Data Source

PatentUS11693696B2Techniques for command execution using a state machine
Publication Date: 2023.07.04 EMC IP HLDG CO LLC
  • US11693696B2 patent drawing
  • US11693696B2 patent drawing
  • US11693696B2 patent drawing

AI summary

Techniques for processing a request may include: providing tasks to a state machine framework, wherein the tasks perform processing of a workflow for servicing the request; generating, by the state machine framework, a state machine for processing the request, wherein the state machine includes states associated with the tasks, wherein generating the state machine may include automatically determining a first state transition of the state machine between a first and a second of the states; receiving the request; and responsive to receiving the request, performing first processing using the state machine to service the request. The framework may automatically generate triggers that drive the state machine to determine subsequent states in accordance with defined state transitions. State machine internal state information may be persistently stored and used in restoring the state machine to one of its states in connection processing of the command.