Rack-Based Software Version Switching for Stable Web Updates
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing software update management techniques are inefficient and prone to interruptions, resource wastage, and failures due to incompatibilities between legacy and new software versions, requiring extensive testing and resource allocation without considering criticality levels and common flow paths.
Innovation Solution
A system that classifies software codes based on attributes such as functions, criticality levels, and common flow paths, allowing dynamic switching between old and new versions, monitors updates for failures, and uses video recordings and log files to address errors, optimizing resource allocation and reducing interruptions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Adaptability or versatility
If software code is updated from legacy version to new version, then software functionality is improved, but system stability deteriorates due to compatibility issues and execution interruptions
Solution Approach 1:
The software code is divided into multiple execution racks (first rack for legacy version, second rack for new version), allowing independent management and execution of different versions. This segmentation enables the system to maintain stable legacy operations while testing new versions, resolving the contradiction between update capability and system stability.
Solution Approach 2:
The system introduces an intermediary mechanism that tracks executed operations and their corresponding racks. When an operation is interrupted during update, the system uses this intermediary information to resume execution from the correct rack, ensuring stability is maintained while updates are applied.
2Reliability
If complete testing of all software code functions is performed during update, then update reliability is improved, but processing resources and time are excessively consumed
Solution Approach 1:
Instead of testing all software code functions completely, the system performs partial testing by executing operations only in the context of specific racks where the code will be deployed. This partial action approach ensures sufficient reliability verification while significantly reducing the processing resources and time required compared to comprehensive testing.
Solution Approach 2:
The system creates a simplified representation of the execution environment through racks that replicate only the necessary execution context. This copying approach allows testing and validation without requiring full replication of all system functions, improving update reliability while maintaining high productivity.
3Adaptability or versatility
If software code execution is interrupted for updates, then new features are implemented, but processing resources are wasted and update time is extended
Solution Approach 1:
The system dynamically switches between different racks based on the current execution state and update requirements. Rather than interrupting execution for updates, the system can dynamically redirect operations to appropriate racks, implementing version switching capability while minimizing update interruption time and resource waste.
Data Source
AI summary
A system for updating a software code executes a current version of the software code on a web application. The system receives a request message to update the current version of the software code to a new version of the software code. The system determines whether the software code is still being executed on the web application. In response to determining that the software code is still being executed on the web application, the system identifies a subset of portions of the software code that have not yet been executed, executes an update instruction to cause the subset of portions of the software code to be updated, and moves the updated subset of portions of the software code from a first memory block to a second memory block.


