Zero Downtime Software Upgrade Mechanism for Distributed Clusters
Find Innovative SolutionsGenerate Solutions
Solution Overview
Problem
Distributed computer systems face challenges in applying software upgrades without downtime, which affects user satisfaction for mission-critical applications and can lead to issues with system functionality due to prolonged upgrade intervals.
Innovation Solution
A method involving redirecting service requests between cluster instances, saving in-progress executions in a public store, and applying software patches to application server nodes, allowing for seamless upgrades with zero downtime by synchronizing binary data and ensuring compatibility between versions.
Engineering Contradictions & Design Principles
Engineering Contradiction Analysis
1Reliability
If software upgrades are applied to distributed computer systems, then system functionality and reliability are improved, but service downtime occurs affecting user satisfaction
Solution Approach 1:
The distributed computer system is divided into multiple independent cluster instances that can operate autonomously. During software upgrades, the system segments functionality across instances so that upgraded and non-upgraded instances can coexist and serve different service requests, eliminating the need for complete system downtime.
Solution Approach 2:
The system performs preliminary actions by maintaining a public store that persists service request execution states before upgrades. This allows the system to save current execution states, apply software patches in advance to some instances, and then restore executions from saved states after upgrading, ensuring no service interruption.
2Loss of time
If software upgrades are delayed to avoid downtime, then service continuity is maintained, but system functionality deteriorates due to outdated software
Solution Approach 1:
The system ensures continuity of useful action by redirecting service requests between cluster instances during upgrades. While some instances are being upgraded, other instances continue to handle service requests, maintaining continuous system functionality without forcing upgrade delays.
Solution Approach 2:
The system creates copies of execution states in the public store before upgrades. These copied states allow the system to restore and continue executions on upgraded instances, ensuring that functionality is maintained throughout the upgrade process rather than being delayed.
3Productivity
If multiple cluster instances are used for load distribution, then service scalability is improved, but upgrade complexity increases due to coordination requirements
Solution Approach 1:
The system merges the upgrade process across multiple cluster instances by applying software patches to all instances and synchronizing their execution environments. This unified approach, combined with the public store for state management, simplifies coordination compared to managing independent upgrades of each instance separately.
Solution Approach 2:
The public store acts as an intermediary between cluster instances during upgrades, centralizing the management of execution states. This mediator simplifies the coordination complexity by providing a single point for saving, retrieving, and synchronizing states across all instances rather than requiring direct peer-to-peer coordination.
Data Source
AI summary
In a distributed computer system with cluster architecture, a number of service requests are redirected from a first instance of the cluster to a second instance of the cluster for execution. A software patch is applied to one or more software components running on an application server node of the first instance of the cluster. A number of service requests are redirected from the second instance of the cluster to the first instance of the cluster for execution. The software patch is applied on the one or more software components running on an application server node of the second instance of the cluster. A number of new service requests are directed to the upgraded second instance of the cluster for processing.


