In-Service Software Upgrade via Dual Stack Segmentation

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Traditional software upgrades for network devices often require downtime and are not easily reversible, as they involve modifying the existing software stack and may force the device to shut down and reboot, leading to undesirable downtime.

Innovation Solution

The method involves constructing a new software stack for an upgraded operating system version while the old stack is active, sharing some filesystem components but differing in others, and transitioning management of active processes without rebooting the device, allowing seamless and reversible in-service software upgrades.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If traditional software upgrade methods are used, then the operating system can be updated to fix bugs and improve performance, but the device must shut down and reboot, resulting in downtime

Engineering Contradiction:
Improvesoftware update capabilityVSAvoiddevice downtime
Core Design Contradiction:
ReliabilityVSLoss of time

Solution Approach 1:

The software system is divided into multiple independent software stacks (first software stack and second software stack), each capable of running independently. This segmentation allows the device to maintain one operational stack while another stack is being upgraded, eliminating the need for complete system shutdown and enabling seamless transitions between stacks.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

The second software stack is constructed and prepared in advance while the first software stack remains active and operational. This preliminary action allows the upgraded stack to be ready for immediate activation without interrupting the current operations, thus avoiding downtime during the upgrade process.

Inventive Principle:
Principle #10Preliminary action

2Reliability

If traditional software upgrade methods are used, then the operating system can be upgraded, but the upgrade process is not easily reversible

Engineering Contradiction:
Improvesoftware update capabilityVSAvoidrollback capability
Core Design Contradiction:
ReliabilityVSEase of manufacture

Solution Approach 1:

By maintaining separate, independent software stacks rather than modifying the existing stack in place, the system enables easy rollback by simply switching back to the previous stack. Each stack remains intact and can be activated independently, making the upgrade process reversible without complex modification tracking.

Inventive Principle:
Principle #1Segmentation

Solution Approach 2:

A complete copy of the operating system (second software stack) is created with all necessary modifications, while the original (first software stack) remains unchanged. This copying approach allows the system to switch between versions by activating different stacks, making rollback as simple as switching back to the original copy.

Inventive Principle:
Principle #26Copying

3Reliability

If traditional software upgrade methods are used, then the operating system can be updated, but the process involves modifying the existing software stack which complicates the upgrade process

Engineering Contradiction:
Improvesoftware update capabilityVSAvoidsoftware stack management complexity
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The software system is segmented into distinct, independent stacks that can be managed separately. This segmentation simplifies upgrade management by allowing each stack to be treated as an independent unit, reducing the complexity of tracking modifications and enabling straightforward switching between versions without managing complex interdependencies.

Inventive Principle:
Principle #1Segmentation

Data Source

PatentUS10922072B1Apparatus, system, and method for seamless and reversible in-service software upgrades
Publication Date: 2021.02.16 JUNIPER NETWORKS INC
  • US10922072B1 patent drawing
  • US10922072B1 patent drawing
  • US10922072B1 patent drawing

AI summary

A disclosed method may include (1) detecting an in-service software upgrade that is to upgrade a first version of an operating system to a second version of the operating system and (2) performing the in-service software upgrade by (A) constructing a second software stack for the second version while a first software stack for the first version is active, wherein the first software stack and the second software stack (I) share one or more filesystem components in common and (II) differ from one another with respect to at least one filesystem component, (B) identifying one or more active processes that are currently managed by the first version, and (C) deactivating the first version and activating the second version such that management of the active processes is transitioned from the first version to the second version without rebooting. Various other apparatuses, systems, and methods are also disclosed.