Asynchronous encryption and decryption of virtual machine memory for live migration
US-2015381589-A1 · Dec 31, 2015 · US
US10817224B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-10817224-B2 |
| Application number | US-201615191400-A |
| Country | US |
| Kind code | B2 |
| Filing date | Jun 23, 2016 |
| Priority date | Jun 23, 2016 |
| Publication date | Oct 27, 2020 |
| Grant date | Oct 27, 2020 |
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, methods, and computer programs are disclosed for scheduling decompression of an application from flash storage. One embodiment of a system comprises a flash memory device and a preemptive decompression scheduler component. The preemptive decompression scheduler component comprises logic configured to generate and store metadata defining one or more dependent objects associated with the compressed application in response to an application installer component installing a compressed application to the flash memory device. In response to a launch of the compressed application by an application launcher component, the preemptive decompression scheduler component determines from the stored metadata the one or more dependent objects associated with the compressed application to be launched. The preemptive decompression scheduler component preemptively schedules decompression of the one or more dependent objects based on the stored metadata.
Opening claim text (preview).
What is claimed is: 1. A method for scheduling decompression of application objects, the method comprising: initiating an installation of the application to a flash memory device; compressing one or more dependent objects associated with the application to form one or more dependent compressed objects, wherein the one or more dependent objects comprise files that the application depends on for execution, wherein the one or more dependent objects include at least one of a shared native executable library file, a shared executable object file, and a platform executable object file; storing the one or more dependent compressed objects in the flash memory device; during the installation of the application to the flash memory device, generating metadata for the application, the metadata identifying the one or more dependent compressed objects, the metadata comprising an application identifier and a priority value, the priority value determining an order for decompressing the one or more dependent compressed objects prior to launch of the application and prior to the launched application accessing the one or more dependent objects, each priority value that is assigned to a dependent compressed object is based on frequency of use by the application, each priority value of a dependent compress object being changeable when the frequency of use by the application of a dependent compressed object changes; storing the metadata in a decompression metadata table; and in response to a command to launch of the application: determining from the stored metadata the one or more dependent compressed objects associated with the application to be launched; preemptively scheduling decompression of the one or more dependent compressed objects based on the stored metadata comprising one or more application identifiers and one or more priority values; and decompressing the one or more dependent compressed objects based on the preemptively scheduled decompression as the application is being launched and before the application accesses the one or more dependent objects, rather than decompressing the one or more dependent compressed objects when the launched application first accesses the one or more dependent objects. 2. The method of claim 1 , wherein decompressing the one or more dependent compressed objects before the application accesses the one or more dependent objects further comprises: decompressing the one or more dependent compressed objects before an application launcher loads the dependent objects. 3. The method of claim 1 , wherein the one or more dependent objects comprises one or more of a dependent file, a dependent library, a shared library, and one or more size-constrained blocks. 4. The method of claim 1 , wherein the metadata further comprises a list of installed paths and filenames, and a plurality of block indices and sizes. 5. The method of claim 1 , wherein the flash memory device comprises NAND flash. 6. The method of claim 1 , further comprising: during execution of the application, determining one or more additional dependent objects; and updating the stored metadata with the one or more additional dependent objects. 7. The method of claim 1 , wherein the preemptively scheduling decompression of the one or more dependent compressed objects based on the stored metadata comprises: scheduling decompression of the one or more dependent compressed objects before a dynamic linker resolves one or more dependency associated with the one or more dependent objects. 8. A system for scheduling decompression of application objects, the system comprising: means for initiating an installation of the application to a flash memory device; means for compressing one or more dependent objects associated with the application to form one or more dependent compressed objects, wherein the one or more dependent objects comprise files that the application depends on for execution, wherein the one or more dependent objects include at least one of a shared native executable library file, a shared executable object file, and a platform executable object file; means for storing the one or more dependent compressed objects in the flash memory device; means for generating during the installation of the application to the flash memory device metadata for the application, the metadata identifying the one or more dependent compressed objects, the metadata comprising an application identifier and a priority value, the priority value determining an order for decompressing the one or more dependent compressed objects prior to launch of the application and prior to the launched application accessing the one or more dependent objects, each priority value that is assigned to a dependent compressed object is based on frequency of use by the application, each priority value of a dependent compress object being changeable when the frequency of use by the application of a dependent compressed object changes; means for storing the metadata in a decompression metadata table; and in response to a command to launch of the application: determining from the stored metadata the one or more dependent compressed objects associated with the application to be launched; preemptively scheduling decompression of the one or more dependent compressed objects based on the stored metadata comprising one or more application identifiers and one or more priority values; and decompressing the one or more dependent compressed objects based on the preemptively scheduled decompression as the application is being launched and before the application accesses the one or more dependent objects, rather than decompressing the one or more dependent compressed objects when the launched application first accesses the one or more dependent objects. 9. The system of claim 8 , further comprising: means for decompressing the one or more dependent compressed objects before an application launcher loads the dependent objects. 10. The system of claim 9 , wherein the means for decompressing the one or more dependent compressed objects comprises one of a central processing unit (CPU) and a compression co-processor with a dedication random access memory (RAM). 11. The system of claim 9 , wherein the one or more dependent objects comprises one or more of a dependent file, a dependent library, a shared library, and one or more size-constrained blocks. 12. The system of claim 8 , wherein the metadata further comprises a list of installed paths and filenames. 13. The system of claim 8 , wherein the flash memory device comprises NAND flash. 14. The system of claim 8 , further comprising: means for determining one or more additional dependent objects during execution of the application; and means for updating the stored metadata with the one or more additional dependent objects. 15. The system of claim 8 , wherein the means for preemptively scheduling decompression of the one or more dependent compressed objects based on the stored metadata comprises: means for scheduling decompression of the one or more dependent compressed objects before a dynamic linker resolves one or more dependency associated with the one or more dependent objects. 16. A computer program embodied in a memory and executable by a processor for scheduling decompression of application objects, the computer program comprising logic configured to: initiate an installation of the application to a flash memory device; compress one or more dependent objects associated with the application to form one or more dependent compressed objects, wherein the one or more dependent objects comprise files tha
Preparing or optimising for loading · CPC title
management of metadata or control data · CPC title
Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading · CPC title
Compressed data · CPC title
Configuring for program initiating, e.g. using registry, configuration files · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.