Hardware assisted software versioning of clustered applications

US10019258B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10019258-B2
Application numberUS-201415301969-A
CountryUS
Kind codeB2
Filing dateApr 29, 2014
Priority dateApr 29, 2014
Publication dateJul 10, 2018
Grant dateJul 10, 2018

How to read this patent

A practical reading order for non-experts. Skip the full description unless you need deep technical detail.

  1. Title

    What the patent document calls the invention.

  2. Abstract

    A short plain-language summary of the technical disclosure.

  3. Assignees and inventors

    Who owns or filed the patent and who is credited as inventor.

  4. Key dates

    Filing, priority, publication, and grant dates set the timeline.

  5. First independent claim

    The legal scope of protection — read this for what is actually claimed.

  6. CPC / IPC classifications

    Technology tags used to group this patent with similar filings.

  7. Citations and related patents

    Prior art links and similar publications in this corpus.

Abstract

Official abstract text for this publication.

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.

First claim

Opening claim text (preview).

We claim: 1. A system for providing hardware assisted software versioning for clustered applications, the system comprising: virtualized global memory storing a plurality of versions of a data structure of a cluster application, wherein the cluster application is provided by a plurality of application servers; and a device operatively connected to the virtualized global memory, the device including a processor and a non-transitory computer readable medium storing instructions that when executed by the processor cause the processor to: in response to a writing of a data element in a first version of the common data structure by one of the plurality of application servers, determine addresses of other versions of the data structure in the virtualized global memory; based on the addresses of the other versions of the data structure in the virtualized global memory, render the other versions of the data structure in the virtualized global memory invalid to prevent the other versions of the data structure from being accessed; while the other versions of the data structure in the virtualized global memory are invalid, translate the data element written in the first version of the data structure to the other versions of the data structure directly in the virtualized global memory; and after the data element has been translated to the other versions of the data structure in the virtualized global memory, render the other versions of the data structure in the virtualized global memory valid to allow the other versions of the data structure to be accessed. 2. The system of claim 1 , wherein the data element is translated in response to a request to access the data element from a requesting server of the plurality of application servers. 3. The system of claim 1 , wherein, to translate the data element directly in the virtualized global memory, the instructions are to cause the processor to utilize a bit mask to expand or contract the data element in the other versions of the data structure in the virtualized global memory. 4. The system of claim 1 , wherein, to translate the data element directly in the virtualized global memory, the instructions are to cause the processor to perform an arithmetic derivation of the data element in the other versions of the data structure in the virtualized global memory. 5. The system of claim 1 , wherein, to translate the data element directly in the virtualized global memory, the instructions are to cause the processor to invoke a translation interrupt that triggers a software function to translate the data element. 6. The system of claim 1 , wherein, to translate the data element to each version of the other versions of the data structure in the virtualized global memory, the instructions are to cause the processor to: invoke a selected translation, and identify the selected translation from a plurality of translators based on the first version of the data structure and a target version of the other versions of the data structure, wherein the plurality of translators comprises an arithmetic derivation translator and a function translator. 7. A method for providing hardware assisted software versioning for clustered applications, the method comprising: receiving a notification that one of a plurality of application servers has written an element in a first version of a data structure of a cluster application, wherein the plurality of application servers provides the clustered application that comprises a plurality of versions of the data structure; in response to the element being written in the first version of the data structure, determining, by a processor of a computing device, addresses of other versions of the data structure in virtualized global memory of the clustered application; based on the addresses of the other versions of the data structure in the virtualized global memory, rendering, by the processor, the other versions of the data structure in the virtualized global memory invalid to prevent the other versions of the data structure from being accessed; while the other versions of the data structure in the virtualized global memory are invalid, translating, by the processor, the element to the other versions of the data structure directly in the virtualized global memory; and after the element has been translated to the other versions of the data structure in the virtualized global memory, rendering, by the processor, the other versions of the data structure in the virtualized global memory valid to allow the other versions of the data structure to be accessed. 8. The method of claim 7 , wherein the element is translated in response to a request to access the element from a requesting server of the plurality of application servers. 9. The method of claim 7 , wherein translating the element directly in the virtualized global memory includes using a bit mask to expand or contract the element in the other versions of the data structure in the virtualized global memory. 10. The method of claim 7 , wherein translating the element directly in the virtualized global memory includes invoking a translation interrupt that triggers a software function to translate the element. 11. The method of claim 7 , wherein translating the element to each version of the other versions of the data structure in the virtualized global memory includes invoking a selected translation, and wherein the method further comprises: identifying the selected translation from a plurality of translators based on the first version of the data structure and a target version of the other versions of the data structure, wherein the plurality of translators comprises an arithmetic derivation translator and a function translator. 12. A non-transitory machine-readable storage medium encoded with instructions executable by a processor for providing hardware assisted software versioning for clustered applications, the non-transitory machine-readable storage medium storing instructions that when executed by the processor cause the processor to: receive a notification that an initial server of a plurality of application servers has written an element in a first version of a data structure of a cluster application, wherein the plurality of application servers provides the clustered application that comprises a plurality of versions of the data structure; in response to the writing of the element in the first version of the data structure, determine addresses of other versions of the data structure in virtualized global memory; based on the addresses of the other versions of the data structure in the virtualized global memory, render the other versions of the data structure in the virtualized global memory invalid to prevent the other versions of the data structure from being accessed; while the other versions of the data structure in the virtualized global memory are invalid and in response to a request to access the element from a requesting server of the plurality of application servers, translate the element written in the first version to the other versions of the data structure directly in the virtualized global memory; and after the element has been translated to the other versions of the data structure in the virtualized global memory, render the other versions of the data structure valid to allow the other versions containing the element to be accessed. 13. The non-transitory machine-readable storage medium of claim 12 , wherein to translate the element directly in the virtualized global memory, the instructions are to cause the processor to use a bit mask to expand or contract the element in the other versions of the data structure in the virtual

Assignees

Inventors

Classifications

  • G06F8/71Primary

    Version control (security arrangements therefor G06F21/57); Configuration management · CPC title

  • G06F8/65Primary

    Updates (security arrangements therefor G06F21/57) · CPC title

Patent family

Related publications grouped by family.

External sources

Frequently asked questions

Answers are generated from the same data shown on this page.

What does patent US10019258B2 cover?
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 …
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification G06F8/71. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jul 10 2018 00:00:00 GMT+0000 (Coordinated Universal Time) (B2). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).