Consumption-Based Elastic Deployment And Reconfiguration Of Hyper-Converged Software-Defined Storage
US-2020252271-A1 · Aug 6, 2020 · US
US11861389B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-11861389-B2 |
| Application number | US-202117196053-A |
| Country | US |
| Kind code | B2 |
| Filing date | Mar 9, 2021 |
| Priority date | Mar 9, 2021 |
| Publication date | Jan 2, 2024 |
| Grant date | Jan 2, 2024 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
Official abstract text for this publication.
Systems and methods are described for compiling a specified instruction from a first virtual application to a second virtual application. Each virtual application may be associated with different programming languages. In an example method, a computing device receives a request to execute the specified instruction in the second virtual application. A target data structure may be created, using a library of the second virtual application, where a template directory may be stored. First syntax features, each defining a respective variable may be identified. An abstract syntax tree may be used to derive, for each first syntax feature, a modified definition for the respective variable. Second syntax features may be generated that define the respective variables more precisely than the first syntax features. The specified instruction may be rendered the second virtual application and may be expressed via the second syntax features and their respective variables.
Opening claim text (preview).
The invention is claimed as follows: 1. A method comprising: receiving, by a processor and from a first virtual application, a request to execute a specified instruction in a second different virtual application, wherein the first virtual application is associated with a first programming language and a second virtual application is associated with a second different programming language; creating, using a library of a second virtual application, a target data structure within the second virtual application; storing, to a template directory in the target data structure, one or more templates identified from the specified instruction; identifying, from the specified instruction, first syntax features, wherein each first syntax feature defines a respective variable; generating, using the specified instruction, an abstract syntax tree to derive, for each first syntax feature, a modified definition for the respective variable; generating, based on the modified definitions, and using the library of the second virtual application, second syntax features that define the respective variables more precisely than the first syntax features; rendering, using the second virtual application, the specified instruction into the one or more templates, the specified instruction expressed via the second syntax features and their respective variables; and executing, by the processor, the specified instruction using the second syntax features, wherein executing the specified instruction using the second syntax features results in less CPU cycles than executing the specified instruction using the first syntax features. 2. The method of claim 1 , wherein the generating the second syntax features comprises: translating a template function of the first virtual application to a filter replacement. 3. The method of claim 1 , wherein the generating the second syntax features results in a smaller allocation of dynamic memory when executing the specified instruction in the second virtual application as compared to executing the specified instruction in the first virtual application. 4. The method of claim 1 , further comprising, before the rendering, storing, in the template directory of the target data structure, one or more template properties of the first virtual application. 5. The method of claim 4 , further comprising: removing, from the template directory, one or more self-references for the one or more template properties that are incompatible in the second virtual application. 6. The method of claim 4 , further comprising: determining a new template property for a self-reference for the one or more template properties; and converting the self-reference to the new template property. 7. The method of claim 1 , wherein the first syntax features comprises a first conditional statement, a first branch instruction, and a first function statement for the first virtual application, and wherein the second syntax features comprises a second conditional statement, a second branch instruction, and a second function statement for the second virtual application. 8. The method of claim 7 , wherein the generating the second syntax features comprises: deriving, after analyzing the specified instruction, a modified definition of an ending of the first branch instruction; and generating, based on the modified definition of the ending of the first branch instruction, the second branch instruction, wherein the second branch instruction is more precise than the first branch instruction. 9. The method of claim 1 , wherein the generating the second syntax features comprises translating a “range” function to a “for” loop. 10. A system comprising: a first server hosting a first virtual application; a second server hosting a second different virtual application; and a computing device comprising: a processor; and memory storing instructions that, when executed by the processor, cause the processor to: receive, from the first server, a request to compile a specified instruction for the second virtual application, wherein the request includes an identifier of the second server; cause, using the identifier, the second server to create a target data structure within the second virtual application; store one or more templates identified from the specified instruction to a template directory in the target data structure; identify, from the specified instruction, a plurality of first syntax features, each first syntax feature defining a respective variable; determine, using the specified instruction and for each first syntax feature, a modified definition for the respective variable; generate, based on the modified definitions, and using a library of the second virtual application, second syntax features defining the respective variables more precisely than the first syntax features; render, using the second virtual application, the specified instruction into the one or more templates, the specified instruction expressed via the second syntax features and their respective variables; and execute the specified instruction using the second syntax features, wherein executing the specified instruction using the second syntax features results in less CPU cycles than executing the specified instruction using the first syntax features. 11. The system of claim 10 , wherein the instructions, when executed, cause the processor to generate the second syntax features by: translating a template function of the first virtual application to a filter replacement. 12. The system of claim 10 , wherein the system further comprises: a library associated with the first virtual application and the second virtual application. 13. The system of claim 10 , wherein the first syntax features comprises a first conditional statement, a first branch instruction, and a first function statement for the first virtual application, and wherein the second syntax features comprises a second conditional statement, a second branch instruction, and a second function statement for the second virtual application. 14. The system of claim 13 , wherein the instructions, when executed, further cause the processor to generate the second syntax features by: determining, based on the first conditional statement defining a variable in the specified instruction, a modified definition of the variable defined by the first conditional statement in the specified instruction; and generating, in the target data structure and based on the modified definition of the variable defined by the first conditional statement, a second conditional statement defining the variable more precisely than the first conditional statement. 15. The system of claim 10 , wherein the instructions, when executed, further cause the processor to: store, in the template directory in the target data structure, one or more template properties of the first virtual application; and identify, within the one or more template properties, one or more self-references that are incompatible with the second virtual application. 16. A non-transitory computer readable medium for use on a computer system containing computer-executable programming instructions for cross-compiling a specified instruction between two virtual applications, the instructions comprising: receiving, from a first virtual application, a request to compile a source code for the specified instruction for a second different virtual application; creating, using a library associated with the second virtual application, a target data structure within the second virtual application; storing one or more templates identified from the
Hypervisor-specific management and integration aspects · CPC title
Instruction analysis, e.g. decoding, instruction word fields · CPC title
Instruction issuing, e.g. dynamic instruction scheduling or out of order instruction execution · CPC title
Distribution of virtual machine instances; Migration and load balancing · CPC title
I/O management, e.g. providing access to device drivers or storage · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.