Software Update Rollback via Checkpoint and Video Logging

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Current software code update processes are inefficient and prone to interruptions, as they require extensive processing and memory resources, often resulting in wasted resources and failed updates due to incompatibilities between legacy and new versions, and lack effective solutions for managing and recovering from update failures.

Innovation Solution

The system classifies software codes based on attributes like functions, criticality levels, and common flow paths, allowing dynamic switching between old and new versions during updates, and includes mechanisms to monitor and recover from update failures by rolling back to the previous version, analyzing logs, and fetching video recordings for operator feedback.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If the software code is interrupted to be updated to a new version, then the update can be completed, but the productivity and efficiency of the updating process are reduced due to interruptions and resource wastage

Engineering Contradiction:
Improveupdate completionVSAvoidupdating efficiency
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system performs preliminary actions by creating a checkpoint before updating the software code. This checkpoint captures the current state including code, data, and execution context, enabling the update to proceed without interrupting the running application. The preliminary checkpoint creation allows seamless transition to the new version while maintaining productivity.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The system enables continuity of useful action by allowing the software application to continue running and processing requests while the code update occurs in the background. The update process does not interrupt the execution flow, and the system seamlessly switches to the new code version once updated, eliminating downtime and maintaining continuous operational efficiency.

Inventive Principle:
Principle #20Continuity of useful action

2Reliability

If extensive processing and memory resources are allocated to the update process, then the update can be performed, but resource wastage increases and update failures may occur due to incompatibilities

Engineering Contradiction:
Improveupdate executionVSAvoidresource wastage
Core Design Contradiction:
ReliabilityVSLoss of energy

Solution Approach 1:

The system changes resource allocation parameters dynamically during the update process. Instead of allocating extensive resources upfront, the system allocates resources as needed during code generation, validation, and deployment phases. This on-demand resource allocation reduces overall resource wastage while ensuring sufficient resources are available when required for critical update operations.

Inventive Principle:
Principle #35Parameter changes

Solution Approach 2:

The system performs preliminary validation and compatibility checks before full resource allocation. By pre-validating the new code version against the running application environment, the system identifies potential incompatibilities early, preventing resource wastage on failed update attempts and reducing the need for extensive resource allocation during the actual update execution.

Inventive Principle:
Principle #10Preliminary action

3Reliability

If all functions of the software code are tested during update, then compatibility is ensured, but the processing time and resources required increase significantly

Engineering Contradiction:
Improvecompatibility assuranceVSAvoidtesting duration
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The system applies partial action by testing only the critical functions and code paths that are most likely to be affected by the update. Instead of exhaustively testing all functions, the system identifies and tests the essential pathways that ensure compatibility, reducing testing time and resource requirements while maintaining sufficient reliability for the update.

Inventive Principle:
Principle #16Partial or excessive action

Solution Approach 2:

The system performs preliminary identification of critical code paths and functions that require testing. By analyzing the updated code to determine which functions are most relevant to the changes, the system pre-selects the test cases that provide the highest value for compatibility assurance, eliminating unnecessary testing and reducing overall testing duration.

Inventive Principle:
Principle #10Preliminary action

4Productivity

If the software code is classified and organized into racks based on attributes, then the update process becomes more efficient and interruptions are reduced, but the device complexity increases

Engineering Contradiction:
Improveupdate efficiencyVSAvoidcode management structure
Core Design Contradiction:
ProductivityVSDevice complexity

Solution Approach 1:

The system segments the software code into organized racks based on attributes such as function, criticality, and dependencies. This segmentation allows the update process to target specific code modules independently, reducing interruptions to other parts of the system and improving overall update efficiency. The segmented structure enables parallel processing of updates across different code racks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The code rack structure serves multiple functions: organizing code by attributes, tracking dependencies, managing versions, and coordinating updates. This multi-functional organization system improves update efficiency and reduces complexity by providing a unified framework that handles various aspects of code management simultaneously, rather than requiring separate systems for each function.

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

Data Source

PatentUS20250094154A1System and method for addressing software code update failure
Publication Date: 2025.03.20 BANK OF AMERICA CORP
  • US20250094154A1 patent drawing
  • US20250094154A1 patent drawing
  • US20250094154A1 patent drawing

AI summary

A system for addressing a software code update failure receives a request message to update a current version of a software code to a new version of the software code. The system executes an update instruction to cause at least a portion of the software code to be updated. The system records a log file that comprises information about an execution of the new version of the software code and captures a video recording that shows a screen on a computing device on which the new version of the software code is executed. The system detects an error message and in response to the error message, rolls back the new version of the software code to the current version, communicates an alert message, receives an updated configuration file, and re-executes the update instruction configured with the updated configuration file.