Hardware-Assisted Versioning for Clustered App Upgrades

Resolve Bottlenecks,
Find Innovative Solutions
Generate Solutions

Solution Overview

Problem

Simultaneous upgrades of server nodes in clustered applications often result in downtime due to data format changes during the process, especially in large-scale applications using remote direct memory access (RDMA) or shared data structures, where traditional data translation methods are not suitable for online upgrades.

Innovation Solution

The implementation of hardware-assisted software versioning allows each version of a data structure to maintain its own rendition, with a controller device managing virtualized global memory to translate and validate data elements across multiple versions, ensuring compatibility and accessibility without network transmission, using modules like locators, validators, and translators to handle changes and access requests.

Engineering Contradictions & Design Principles

VSEngineering Contradiction Analysis

1Adaptability or versatility

If data translation is performed during upgrade process, then data format compatibility is improved, but network transmission overhead and complexity increase

Engineering Contradiction:
Improvedata format compatibilityVSAvoidtranslation complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent extracts the data translation function from the network communication path and places it directly in the global memory space. The controller performs translation operations on data structures in place, rather than translating data during network transmission between server nodes. This eliminates network transmission overhead while maintaining data format compatibility across different application versions.

Inventive Principle:
Principle #2Taking out (Extraction)

2Stability of the object's composition

If simultaneous upgrade of all server nodes is performed, then data format consistency is improved, but system downtime increases

Engineering Contradiction:
Improvedata format consistencyVSAvoidupgrade downtime
Core Design Contradiction:
Stability of the object's compositionVSLoss of time

Solution Approach 1:

The patent implements preliminary action by maintaining multiple versions of data structures in global memory before initiating an upgrade. Old versions are preserved and made accessible to server nodes that have not yet upgraded, while new versions are prepared for upgraded nodes. This allows incremental upgrades without requiring all server nodes to be upgraded simultaneously, thereby eliminating downtime while maintaining data format consistency through version management.

Inventive Principle:
Principle #10Preliminary action

3Adaptability or versatility

If multiple versions of data structures are maintained, then online upgrade capability is improved, but memory management complexity increases

Engineering Contradiction:
Improveonline upgrade capabilityVSAvoidmemory management complexity
Core Design Contradiction:
Adaptability or versatilityVSDevice complexity

Solution Approach 1:

The patent introduces a controller as an intermediary between server nodes and the global memory containing multiple data structure versions. The controller manages version tracking, translation operations, and access routing automatically. Server nodes simply request data with their version identifier, and the controller handles the complexity of locating and providing the appropriate version, thereby simplifying memory management from the perspective of server nodes while enabling online upgrades.

Inventive Principle:
Principle #24Intermediary (Mediator)

Data Source

PatentUS10019258B2Hardware assisted software versioning of clustered applications
Publication Date: 2018.07.10 HEWLETT PACKARD ENTERPRISE DEV LP
  • US10019258B2 patent drawing
  • US10019258B2 patent drawing
  • US10019258B2 patent drawing

AI summary

Examples relate to providing hardware assisted software versioning for clustered applications. In one example, virtualized global memory is accessible to application servers that provide a clustered application, where the clustered application includes multiple versions of a common data structure. After one of the application servers stores an element that is compatible with one version of the common data structure, other versions of the common data structure are located in the virtualized global memory. The element is then invalidated in the other versions of the common data structure to prevent access and translated directly in the virtualized global memory to the other versions of the common data structure. At this stage, the element can be validated in the other versions of the common data structure for access.