Node Upgrading System Maintains Uptime During Software Version Rollouts
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Existing computing systems face downtime and associated financial and operational issues during software upgrades, as all nodes typically need to be taken offline to maintain data consistency, disrupting continuous uptime and user access.
Innovation Solution
A node upgrading system (NUS) that manages upgrades by using a coordinator and workers to maintain data snapshots and locks, allowing some nodes to remain online for read requests while others are upgraded, and coordinating the rollout of new software versions to prevent version inconsistencies and enable continuous system operation.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If all computing nodes are taken offline for software upgrades, then data consistency is maintained, but system uptime is reduced and user access is disrupted
Solution Approach 1:
The computing system is segmented into multiple independent nodes that can be upgraded individually rather than all at once. The upgrade process divides nodes into batches, allowing some nodes to remain online while others are upgraded, thus maintaining data consistency without requiring complete system shutdown.
Solution Approach 2:
The system performs preliminary actions by pre-downloading software packages to a repository and pre-preparing upgrade manifests before actual upgrades begin. This allows nodes to be upgraded in a coordinated manner without requiring all nodes to be offline simultaneously, reducing overall downtime while maintaining data consistency.
2Stability of the object's composition
If computing nodes are taken offline for upgrades, then software version consistency is achieved, but productivity and user access are reduced
Solution Approach 1:
The upgrade system dynamically adjusts the upgrade process based on real-time system state. Nodes are upgraded in dynamic batches rather than a fixed sequence, allowing the system to maintain optimal availability while achieving version consistency. The system can pause, resume, or adjust upgrade timing based on current workload and node status.
Solution Approach 2:
The system maintains continuous useful action by allowing read operations to continue on online nodes while upgrade operations proceed on offline nodes. The upgrade process does not interrupt normal system operations, enabling software version consistency to be achieved without completely stopping productivity.
3Reliability
If nodes are upgraded sequentially one by one, then version consistency is maintained, but upgrade time and system disruption increase
Solution Approach 1:
The system performs preliminary actions by pre-downloading software packages to a repository and pre-preparing upgrade manifests before actual upgrades begin. This allows multiple nodes to be upgraded in parallel using pre-prepared packages, reducing upgrade time while maintaining version consistency through coordinated rollout.
Solution Approach 2:
The upgrade process is extended into additional dimensions by introducing a centralized package repository and coordinated upgrade management layer. This additional dimension allows nodes to be upgraded in parallel across multiple time windows and batches, reducing overall upgrade time while maintaining version consistency through centralized coordination.
Data Source
AI summary
Disclosed herein are various embodiments a code simplification system. An embodiment operates by determining that a software version of a coordinator node is different from a software version of one or more worker nodes. Commits by the one or more worker nodes to a database are disabled based on the determination that the software versions differ. An update is performed on each of the one or more worker nodes. An acknowledgement that the update on each of the one or more worker nodes has completed is received, and the commits to the database by the one or more worker nodes is enabled.


