Persistent Flow-Based Programming Environment for State Recovery

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Flow-based programming (FBP) environments lack persistency, requiring external databases for state storage and restoration, which complicates program development and increases burden by necessitating additional nodes for database interaction.

Innovation Solution

Implementing a persistent execution environment within the FBP, utilizing a virtual machine and recovery unit to record journal logs and roll-forward to the latest state, eliminating the need for external databases and simplifying state management.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If external databases are used for state storage in FBP, then persistency is achieved, but device complexity and program development burden increase

Engineering Contradiction:
ImprovepersistencyVSAvoidprogram development burden
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The patent merges the database functionality directly into the FBP execution environment by introducing a persistent execution unit with journal log storage. This integration eliminates the need for separate external database systems and artificial database interaction nodes, thereby achieving persistency while reducing system complexity and development burden.

Inventive Principle:
Principle #5Merging (Combining)

Solution Approach 2:

The patent introduces a persistent execution unit as an intermediary between the FBP execution environment and storage. This unit automatically manages state persistence through journal logs, eliminating the need for application-level database management code while ensuring reliable state storage and recovery.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Reliability

If external databases are used for state management, then persistency is achieved, but ease of operation deteriorates due to additional database nodes

Engineering Contradiction:
ImprovepersistencyVSAvoidprogram development efficiency
Core Design Contradiction:
ReliabilityVSEase of operation

Solution Approach 1:

The persistent execution unit provides self-service persistence management by automatically recording journal logs and managing state recovery. This eliminates the need for developers to manually add database interaction nodes and manage database connections, thereby improving ease of operation while maintaining persistency.

Inventive Principle:
Principle #25Self-service

3Reliability

If state restoration is performed by reading from external databases, then persistency is achieved, but loss of time occurs during activation and failure recovery

Engineering Contradiction:
Improvefailure recoveryVSAvoidactivation time
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The persistent execution unit performs preliminary actions by continuously maintaining journal logs during normal operation. When failure or activation occurs, the system can immediately restore state by replaying these pre-recorded journal logs, significantly reducing recovery time compared to reading from external databases.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The journal log mechanism ensures continuous recording of state changes during operation. This continuous action enables rapid state restoration by simply replaying the log sequence, eliminating the time-consuming process of reading and reconstructing state from external database storage.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS11461118B2Flow-based programming environment for persistent execution and recovery
Publication Date: 2022.10.04 KK TOSHIBA
  • US11461118B2 patent drawing
  • US11461118B2 patent drawing
  • US11461118B2 patent drawing

AI summary

A function node control unit records a pair of an input message and a computer program as a journal log, and sends the input message and the computer program to a virtual machine unit. The virtual machine unit executes the computer program with the input message as an argument, and sends the execution result to the function node control unit. The function node control unit outputs the execution result as an output message. At the time of activation of the information processing device, a recovery unit restores the virtual machine unit to the state at a particular time in the past; sequentially fetches journal logs recorded after the particular time; causes the virtual machine unit to sequentially re-execute the computer programs with the input messages included in the respective journal logs as corresponding arguments; and roll-forwards the state of the virtual machine unit to the latest state.