Hardware-Assisted Versioning for Clustered App Upgrades
Find Innovative SolutionsGenerate 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
Engineering 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
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.
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
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.
3Adaptability or versatility
If multiple versions of data structures are maintained, then online upgrade capability is improved, but memory management complexity increases
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.
Data Source
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.


