Spin Mode Server Update Mechanism for Zero Downtime

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Updating application servers in conventional database systems often results in significant downtime, which is inefficient and costly, as existing methods have not effectively reduced this downtime.

Innovation Solution

A spin mode-based mechanism that upgrades application servers in a way that holds requests during the upgrade process, allowing the second set of servers to continue processing while the first set is upgraded, and then resumes processing with the new version once upgraded, ensuring zero downtime and preventing processing by multiple versions.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If application servers are upgraded using conventional methods, then the servers can be updated to new versions, but significant downtime occurs during the upgrade process

Engineering Contradiction:
Improveservice continuityVSAvoiddowntime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The application server cluster is divided into multiple subsets (first subset, second subset, third subset, etc.). Upgrades are performed sequentially on each subset while other subsets continue to handle requests. This segmentation allows the system to maintain service continuity by redistributing traffic to non-upgrading subsets, thereby eliminating downtime while still achieving complete server updates.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

Before upgrading a subset of application servers, the system preemptively redirects incoming requests to other non-upgrading subsets. This preliminary action ensures that no requests are lost during the upgrade process and that service continuity is maintained throughout the entire upgrade sequence.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If application servers are upgraded to ensure new version deployment, then system currency is improved, but processing requests during upgrade causes version conflicts

Engineering Contradiction:
Improveversion consistencyVSAvoidrequest processing capability
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The system segments the application server cluster into multiple subsets and performs upgrades on one subset at a time. While the first subset is being upgraded, incoming requests are redirected to the second subset which runs the previous version. After the first subset upgrade completes, requests are redirected to it, ensuring version consistency without sacrificing overall system productivity.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The system maintains continuous request processing capability by redirecting traffic between different subsets during upgrades. When one subset is upgraded, another subset continues to process requests, ensuring that the useful action of request processing continues uninterrupted throughout the upgrade process.

Inventive Principle:
Principle #20Continuity of useful action

Data Source

PatentUS9667712B2Mechanism for facilitating spin mode-based dynamic updating of application servers in an on-demand services environment
Publication Date: 2017.05.30 SALESFORCE INC
  • US9667712B2 patent drawing
  • US9667712B2 patent drawing
  • US9667712B2 patent drawing

AI summary

In accordance with embodiments, there are provided mechanisms and methods for facilitating spin mode-based dynamic updating of application servers in an on-demand services environment. In one embodiment and by way of example, a method includes upgrading a first set of application servers of a plurality of application servers at one or more computing devices, holding a first set of requests received at the first set of application servers from being processed while the first set of application servers is being upgraded, and upgrading a second set of application servers of the plurality of application servers upon completion of the first set of application servers. The method may further include holding a second set of requests received at the second set of application servers from being processed while the second set of application servers is being upgraded, and resuming processing of the first set of requests at the upgraded first set of application servers.