IP Library Granted Patent US 11,487,549
Granted Patent B2
US 11,487,549 · App. 16/710,505 · Granted Nov 1, 2022

Virtual machine boot data prediction

Inventors: Ayushi Jain (Bengaluru, IN); Vedant (Bengaluru, IN)
Assignee: Cohesity, Inc.
G06F9/4401G06F9/45558G06F12/0862G06N20/00G06F2009/45583G06F2009/45591
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,487,549
App. No.
16/710,505
Granted
Nov 1, 2022
Kind
B2
Abstract

An indication that a virtual machine is starting is received. Requested data blocks associated with the virtual machine are identified. Based on identifiers of the requested data blocks, a trained learning model is used to predict one or more subsequent data blocks likely to be requested while the virtual machine is starting. The one or more subsequent data blocks are caused to be preloaded in a cache storage.

Claims (36)

1. A method, comprising:

receiving an indication that a virtual machine is starting;

identifying requested data blocks associated with the virtual machine;

based on identifiers of the requested data blocks, using a trained learning model to predict one or more subsequent data blocks likely to be requested while the virtual machine is starting, wherein the identifiers of the requested data blocks are associated with a boot sequence of the virtual machine, wherein the trained learning model predicts the one or more subsequent data blocks based on a threshold number of the identifiers of the requested data blocks; and

causing the one or more subsequent data blocks to be preloaded from a storage to a cache storage.

2. The method of claim 1 , wherein the one or more subsequent data blocks are a threshold number of data blocks after a data block being loaded.

3. The method of claim 1 , further comprising determining that the one or more predicted subsequent data blocks are incorrect.

4. The method of claim 3 , further comprising:

monitoring the boot sequence of the virtual machine; and

using the trained learning model to make one or more additional predictions.

5. The method of claim 1 , further comprising determining that the one or more predicted subsequent data blocks are correct.

6. The method of claim 5 , further comprising determining whether an end of the boot sequence associated with the virtual machine has been reached.

7. The method of claim 6 , wherein in response to determining that the end of the boot sequence associated with the virtual machine has been reached, using an actual boot sequence of the virtual machine to update the trained learning model.

8. The method of claim 6 , wherein in response to determining that the end of the boot sequence associated with the virtual machine has not been reached, using the trained learning model to make one or more additional predictions.

9. The method of claim 1 , wherein causing the one or more subsequent data blocks to be preloaded in the cache storage comprises sending to a prefetch engine a request for the one or more subsequent data blocks.

10. The method of claim 9 , wherein in response to receiving the request for the one or more subsequent data blocks, the prefetch engine retrieves the one or more subsequent data blocks from the storage and stores the one or more subsequent data blocks in the cache storage.

11. The method of claim 1 , wherein a filesystem retrieves the one or more subsequent data blocks from the cache storage and loads the one or more subsequent data blocks to a virtual machine environment associated with the virtual machine.

12. The method of claim 1 , wherein the trained learning model uses a graph structure to predict the one or more subsequent data blocks likely to be requested while the virtual machine is starting.

13. The method of claim 12 , wherein the graph structure is comprised of a plurality of branches, wherein each branch corresponds to a different virtual machine.

14. The method of claim 13 , wherein each branch of the plurality of branches is comprised of a plurality of states, wherein each state corresponds to a data block of the boot sequence.

15. The method of claim 1 , wherein the one or more subsequent data blocks include a plurality of data blocks that are caused to be preloaded in the cache storage.

16. The method of claim 15 , wherein the plurality of data blocks are sequential data blocks.

17. A computer program product, the computer program product being embodied in a non-transitory computer readable storage medium and comprising computer instructions for:

receiving an indication that a virtual machine is starting;

identifying requested data blocks associated with the virtual machine;

based on identifiers of the requested data blocks, using a trained learning model to predict one or more subsequent data blocks likely to be requested while the virtual machine is starting, wherein the identifiers of the requested data blocks are associated with a boot sequence of the virtual machine, wherein the trained learning model predicts the one or more subsequent data blocks based on a threshold number of the identifiers of the requested data blocks; and

causing the one or more subsequent data blocks to be preloaded in a cache storage.

18. The computer program product of claim 17 , further comprising instructions for determining that the one or more predicted subsequent data blocks are incorrect.

19. The computer program product of claim 17 , further comprising instructions for determining that the one or more predicted subsequent data blocks are correct.

20. A system, comprising:

a processor configured to:

receive an indication that a virtual machine is starting;

identify requested data blocks associated with the virtual machine;

based on identifiers of the requested data blocks, use a trained learning model to predict one or more subsequent data blocks likely to be requested while the virtual machine is starting, wherein the identifiers of the requested data blocks are associated with a boot sequence of the virtual machine, wherein the trained learning model predicts the one or more subsequent data blocks based on a threshold number of the identifiers of the requested data blocks; and

cause the one or more subsequent data blocks to be preloaded in a cache storage; and

a memory coupled to the processor and configured to provide the processor with instructions.

Assignments (4)
TERMINATION AND RELEASE OF INTELLECTUAL PROPERTY SECURITY AGREEMENT Recorded Dec 10, 2024
From: FIRST-CITIZENS BANK & TRUST COMPANY (AS SUCCESSOR TO SILICON VALLEY BANK)
To: COHESITY, INC.
Reel/Frame 069584/0498 →
SECURITY INTEREST Recorded Dec 9, 2024
From: VERITAS TECHNOLOGIES LLC; COHESITY, INC.
To: JPMORGAN CHASE BANK. N.A.
Reel/Frame 069890/0001 →
SECURITY INTEREST Recorded Sep 23, 2022
From: COHESITY, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 061509/0818 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 5, 2020
From: JAIN, AYUSHI; VEDANT
To: COHESITY, INC.
Reel/Frame 051729/0952 →
Continuity (1)
Related Publication 20210182075A1 · Jun 17, 2021