Trace-assisted startup optimization from a virtual disk

US10002000B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10002000-B2
Application numberUS-201113036367-A
CountryUS
Kind codeB2
Filing dateFeb 28, 2011
Priority dateApr 9, 2007
Publication dateJun 19, 2018
Grant dateJun 19, 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.

The disclosed embodiments provide a system that manages the use of a virtual disk. During operation, the system obtains trace data associated with a startup process that reads blocks from the virtual disk. Next, the system physically rearranges the blocks based on the trace data to increase the speed of the startup process. During execution of the startup process, the system also determines a progress of the startup process and uses the progress and the trace data to prefetch blocks from the virtual disk for use by the startup process.

First claim

Opening claim text (preview).

What is claimed is: 1. A computer-implemented method for facilitating the use of a virtual disk, comprising: obtaining trace data associated with a previous execution of a startup process that reads blocks from the virtual disk, wherein the virtual disk is comprised of one or more files on one or more physical media; physically rearranging the blocks on the one or more physical media based on the trace data when the virtual disk is idle to increase the speed of subsequent executions of the startup process; and prefetching the rearranged blocks during execution of the startup process using the trace data via a prefetching mechanism, wherein the prefetching of the rearranged data comprises using trace data associated with the startup process to obtain three blocks from the virtual disk and store the three blocks in memory accessible to the startup process, the trace data reflects an order in which the blocks are read by the startup process, and the prefetching mechanism refrains from performing additional prefetches based on a prefetch window for the startup process, a size of a cache, or both. 2. The computer-implemented method of claim 1 , wherein obtaining the trace data associated with the startup process involves at least one of: recording input/output (I/O) operations during previous execution of the startup process into a trace file; and reading the trace data from the trace file. 3. The computer-implemented method of claim 2 , wherein the recording is discontinued after: the startup process remains in an idle state for a pre-specified period; or communication from a guest process associated with the startup process is received. 4. The computer-implemented method of claim 2 , wherein the I/O operations are associated with the virtual disk, a virtual computing environment, or other virtual disks. 5. The computer-implemented method of claim 1 , wherein physically rearranging the blocks based on the trace data to increase the speed of the startup process involves: obtaining a set of block locations for the blocks; and reordering the blocks in the virtual disk based on the block locations and the trace data. 6. The computer-implemented method of claim 5 , wherein the blocks are reordered during an idle state associated with use of the virtual disk. 7. The computer-implemented method of claim 5 , wherein reordering the blocks in the virtual disk based on the block locations and the trace data involves at least one of: moving the blocks to buffer memory on a physical disk; and reordering or replicating the blocks to reflect a read order of the blocks from the trace data. 8. The computer-implemented method of claim 1 , wherein the startup process corresponds to a boot-up process of a virtual computing environment from the virtual disk. 9. A system for facilitating the use of a virtual disk, comprising: an interceptor configured to generate trace data associated with a previous execution of a startup process that reads blocks from the virtual disk, wherein the virtual disk is comprised of one or more files on one or more physical media; a disk emulator configured to physically rearrange the blocks based on the trace data when the virtual disk is idle to increase the speed of subsequent executions of the startup process; and a prefetcher configured to prefetch the rearranged blocks during execution of the startup process using the trace data, wherein the prefetcher is further configured to use trace data associated with the startup process to obtain three blocks from the virtual disk and store the three blocks in memory accessible to the startup process, the trace data reflects an order in which the blocks are read by the startup process, and the prefetcher refrains from performing additional prefetches based on a prefetch window for the startup process, a size of a cache, or both. 10. The system of claim 9 , wherein the interceptor generates the trace data by recording input/output (I/O) operations during previous execution of the startup process. 11. The system of claim 10 , wherein the recording is discontinued after: the startup process remains in an idle state for a pre-specified period; or communication from a guest process associated with the startup process is received. 12. The system of claim 9 , wherein physically rearranging the blocks based on the trace data to increase the speed of the startup process involves: obtaining a set of block locations for the blocks; and reordering the blocks in the virtual disk based on the block locations and the trace data. 13. The system of claim 12 , wherein the blocks are reordered during an idle state associated with use of the virtual disk. 14. The system of claim 12 , wherein reordering the blocks in the virtual disk based on the block locations and the trace data involves at least one of: moving the blocks to buffer memory on a physical disk; and reordering or replicating the blocks to reflect a read order of the blocks from the trace data. 15. The system of claim 9 , wherein the startup process corresponds to a boot-up process of a virtual computing environment from the virtual disk. 16. A non-transitory computer-readable storage medium storing instructions that when executed by a computer cause the computer to perform a method for facilitating the use of a virtual disk, the method comprising: obtaining trace data associated with a previous execution of a startup process that reads blocks from the virtual disk, wherein the virtual disk is comprised of one or more files on one or more physical media; physically rearranging the blocks based on the trace data when the virtual disk is idle to increase the speed of subsequent executions of the startup process; and prefetching the rearranged blocks during execution of the startup process using the trace data via a prefetching mechanism, wherein the prefetching of the rearranged data comprises using trace data associated with the stump process to obtain three blocks from the virtual disk and store the three blocks in memory accessible to the startup process, the trace data reflects an order in which the blocks are read by the startup process, and the prefetching mechanism refrains from performing additional prefetches based on a prefetch window for the startup process, a size of a cache, or both. 17. The non-transitory computer-readable storage medium of claim 16 , wherein obtaining the trace data associated with the startup process involves at least one of: recording input/output (I/O) operations during previous execution of the startup process into a trace file; and reading the trace data from the trace file. 18. The non-transitory computer-readable storage medium of claim 17 , wherein the recording is discontinued after: the startup process remains in an idle state for a pre-specified period; or communication from a guest process associated with the startup process is received. 19. The non-transitory computer-readable storage medium of claim 16 , wherein physically rearranging the blocks based on the trace data to increase the speed of the startup process involves: obtaining a set of block locations for the blocks; and reordering the blocks in the virtual disk based on the block locations and the trace data. 20. The non-transitory computer-readable storage medium of claim 19 , wherein reordering the blocks in the virtual disk based on the block locations and the trace data involves at least one of: moving the blocks to buffer memory on a physical disk; and reord

Assignees

Inventors

Classifications

  • G06F9/4401Primary

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

  • by tracing the execution of the program · CPC title

  • by initialisation or re-initialisation of storage systems · CPC title

  • Reducing the number of cache misses; Data prefetching (cache prefetching G06F12/0862) · CPC title

  • at device level, e.g. emulation of a storage device or system · 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 US10002000B2 cover?
The disclosed embodiments provide a system that manages the use of a virtual disk. During operation, the system obtains trace data associated with a startup process that reads blocks from the virtual disk. Next, the system physically rearranges the blocks based on the trace data to increase the speed of the startup process. During execution of the startup process, the system also determines a p…
Who is the assignee on this patent?
Whaley John, Purtell Ii Thomas Joseph, Open Invention Network Llc
What technology area does this patent fall under?
Primary CPC classification G06F9/4401. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 19 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).