In-Service Software Patching via Thread Coordination Zone

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Existing software patch mechanisms in multiple-core and multiple-thread environments often cause significant service disruption by requiring all threads to be stopped during the patch installation process, leading to prolonged downtime and non-atomic patching where some threads use both old and new functions simultaneously.

Innovation Solution

A method where new functions are installed and a thread coordination zone is created to direct software threads to use either existing or new functions based on synchronization status, ensuring all threads use either the old or new functions, thereby maintaining continuous operation and achieving atomic patching without stopping threads.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Reliability

If all threads are stopped during patch installation to ensure atomicity, then patch reliability is improved, but service disruption increases and productivity decreases

Engineering Contradiction:
Improvepatch atomicityVSAvoidservice continuity
Core Design Contradiction:
ReliabilityVSProductivity

Solution Approach 1:

The patent applies preliminary action by installing the new software version into a staging area before it becomes active. The new version is prepared and validated in advance, then switched to when ready, avoiding the need to stop threads during the actual patch installation process. This resolves the contradiction by preparing the patch beforehand rather than applying it during operation.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The patent introduces an intermediary mechanism through version control data structures and staging areas that mediate between the old and new software versions. This intermediary layer allows threads to continue operating on the stable version while the new version is prepared, and enables atomic switching when the patch is ready, thus maintaining both reliability and service continuity.

Inventive Principle:
Principle #24Intermediary (Mediator)

2Productivity

If threads continue running during patch installation to maintain service continuity, then productivity is improved, but patch atomicity may be compromised and reliability worsens

Engineering Contradiction:
Improveservice continuityVSAvoidpatch atomicity
Core Design Contradiction:
ProductivityVSReliability

Solution Approach 1:

The new software version is installed and validated in a staging area before becoming active. This preliminary preparation ensures that when the patch is applied, it is already ready and verified, maintaining atomicity without requiring thread suspension. Threads continue running throughout the process.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

A staging area and version control mechanism act as intermediaries between the running threads and the new software version. This intermediary structure allows the new version to be prepared without affecting running threads, and enables atomic switching when the patch is ready, thus maintaining both service continuity and patch atomicity.

Inventive Principle:
Principle #24Intermediary (Mediator)

3Productivity

If new functions are installed without thread synchronization, then service disruption is minimized, but non-atomic patching occurs where some threads use both old and new functions

Engineering Contradiction:
Improveservice disruptionVSAvoidpatch atomicity
Core Design Contradiction:
ProductivityVSManufacturing precision

Solution Approach 1:

The new software version is completely installed and validated in the staging area before any threads are directed to use it. This preliminary completion ensures that when the switch occurs, all new functions are ready, preventing the mixed state where some threads use old and some use new functions.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The version control data structure and staging area serve as intermediaries that manage the transition between old and new versions. This intermediary mechanism ensures that threads atomically switch from the old version to the complete new version, preventing the non-atomic state where threads would use a mix of old and new functions.

Inventive Principle:
Principle #24Intermediary (Mediator)

4Reliability

If thread synchronization is implemented to ensure atomicity, then patch reliability is improved, but the complexity of the patching mechanism increases

Engineering Contradiction:
Improvepatch atomicityVSAvoidsynchronization mechanism
Core Design Contradiction:
ReliabilityVSDevice complexity

Solution Approach 1:

The new software version is prepared and validated in advance in a staging area, eliminating the need for complex runtime synchronization. The preliminary preparation ensures atomicity through the staging mechanism rather than through complex thread coordination during patch application.

Inventive Principle:
Principle #10Preliminary action

Solution Approach 2:

The version control data structure and staging area act as intermediaries that simplify the patching mechanism. Instead of implementing complex thread synchronization logic, the system uses the intermediary staging mechanism to automatically ensure atomic transitions, reducing overall system complexity while maintaining reliability.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS8930932B2In-service software patch
Publication Date: 2015.01.06 FUTUREWEI TECHNOLOGIES INC
  • US8930932B2 patent drawing
  • US8930932B2 patent drawing
  • US8930932B2 patent drawing

AI summary

A method in a network device with a processor that runs multiple software threads for software that needs an update for updating the software while mitigating service disruption, the method comprising installing at least one new function, modifying at least one existing function to point to a synchronization code, wherein the synchronization code indicates whether the multiple software threads use the at least one new function or the at least one existing function, synchronizing software threads in the network device, based on the synchronization code indicating that the synchronization of the software threads is not complete, using, by the multiple software threads, the at least one existing function, and based on the synchronization code indicating that the synchronization of the software threads is complete, using, by the multiple software threads, the at least one new function, wherein the multiple software threads continually run on the network device during the synchronization.