Asynchronous input and output for snapshots of virtual machines

US11429418B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11429418-B2
Application numberUS-201916527470-A
CountryUS
Kind codeB2
Filing dateJul 31, 2019
Priority dateJul 31, 2019
Publication dateAug 30, 2022
Grant dateAug 30, 2022

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.

A data management system having a storage appliance configured to store a snapshot of a virtual machine; and one or more processors in communication with the storage appliance. The one or more processors are configured to perform operations including: identifying a plurality of shards of the virtual machine; requesting a shard snapshot of each of the plurality of shards; receiving the shard snapshots asynchronously; ordering the received shard snapshots sequentially into a results queue; and storing a single snapshot of the virtual machine based on the ordered shard snapshots. The operations may further include maintaining a flow control queue that limits a number of the requested shard snapshots.

First claim

Opening claim text (preview).

The invention claimed is: 1. A computer-implemented method at a data management system, the method comprising: sharding an entire virtual machine into a plurality of shards, wherein each of the shards corresponds to a different portion of the entire virtual machine; transmitting separate requests for shard snapshots corresponding to at least a first subset of shards of the plurality of shards; receiving, in response to the separate requests for the shard snapshots, the requested shard snapshots out of order; maintaining an offset-slot mapping indicating ordering of the requested shard snapshots, wherein the offset-slot mapping uses disk addresses of the entire virtual machine to indicate the ordering of the requested shard snapshots; storing a shard snapshot that is not maintained in the offset-slot mapping in an early received map, wherein the early received map is configured to hold shard snapshot data until the ordering indicated by the offset-slot mapping is updated based at least in part on a receive queue; ordering the received out of order shard snapshots and the shard snapshot that is stored in the early received map in order into a results queue using the offset-slot mapping that is maintained for the requested shard snapshots and updated to include the shard snapshot based at least in part on the receive queue; and storing a single snapshot of the entire virtual machine in a computer memory based at least in part on the ordered shard snapshots. 2. The method of claim 1 , further comprising: maintaining a flow control queue that limits a number of the requested shard snapshots, wherein the flow control queue stores a set of tokens that limit the number of the requested shard snapshots and receives a token from the receive queue upon storage of a shard snapshot in the results queue. 3. The method of claim 2 , further comprising: maintaining the receive queue and transferring a token from the flow control queue to the receive queue upon receiving one of the requested shard snapshots of the plurality of shards. 4. The method of claim 3 , further comprising: updating the maintained offset-slot mapping with ordering of the shard snapshot not in the offset-slot mapping; and moving the shard snapshot not in the offset-slot mapping into the results queue after the updating. 5. The method of claim 1 , further comprising presenting the ordered shard snapshots in order to a read Application Programming Interface for storage in the computer memory. 6. The method of claim 1 , further comprising enforcing a Secure Sockets Layer in the receiving the requested out of order shard snapshots. 7. A non-transitory, machine-readable medium storing instructions which, when read by a machine, cause the machine to perform operations comprising, at least: sharding an entire virtual machine into a plurality of shards, wherein each of the shards corresponds to a different portion of the entire virtual machine; transmitting separate requests for shard snapshots corresponding to at least a first subset of shards of the plurality of shards; receiving, in response to the separate requests for the shard snapshots, the requested shard snapshots out of order; maintaining an offset-slot mapping indicating ordering of the requested shard snapshots, wherein the offset-slot mapping uses disk addresses of the entire virtual machine to indicate the ordering of the requested shard snapshots; storing a shard snapshot that is not maintained in the offset-slot mapping in an early received map, wherein the early received map is configured to hold shard snapshot data until the ordering indicated by the offset-slot mapping is updated based at least in part on a receive queue; ordering the received out of order shard snapshots and the shard snapshot that is stored in the early received map in order into a results queue using the offset-slot mapping that is maintained for the requested shard snapshots and updated to include the shard snapshot based at least in part on the receive queue; and storing a single snapshot of the entire virtual machine in a computer memory based at least in part on the ordered shard snapshots. 8. The medium of claim 7 , wherein the operations further include: maintaining a flow control queue that limits a number of the requested shard snapshots, wherein the flow control queue stores a set of tokens that limit the number of the requested shard snapshots and receives a token from the receive queue upon storage of a shard snapshot in the results queue. 9. The medium of claim 8 , wherein the operations further include: maintaining the receive queue and transferring a token from the flow control queue to the receive queue upon receiving one of the requested shard snapshots of the plurality of shards. 10. The medium of claim 9 , wherein the operations further include: updating the maintained offset-slot mapping with ordering of the shard snapshot not in the offset-slot mapping; and moving the shard snapshot not in the offset-slot mapping into the results queue after the updating. 11. The medium of claim 7 , wherein the operations further include presenting the ordered shard snapshots in order to a read Application Programming Interface for storage in the computer memory. 12. The medium of claim 7 , wherein the operations further include enforcing a Secure Sockets Layer in the receiving the requested out of order shard snapshots. 13. A data management system, comprising: a computer memory configured to store a snapshot of an entire virtual machine; one or more processors in communication with the computer memory, the one or more processors configured to perform operations including: sharding the entire virtual machine into a plurality of shards, wherein each of the shards corresponds to a different portion of the entire virtual machine; transmitting separate requests for shard snapshots corresponding to at least a first subset of shards of the plurality of shards; receiving, in response to the separate requests for the shard snapshots, the requested shard snapshots out of order; maintaining an offset-slot mapping indicating ordering of the requested shard snapshots, wherein the offset-slot mapping uses disk addresses of the entire virtual machine to indicate the ordering of the requested shard snapshots; storing a shard snapshot that is not maintained in the offset-slot mapping in an early received map, wherein the early received map is configured to hold shard snapshot data until the ordering indicated by the offset-slot mapping is updated based at least in part on a receive queue; ordering the received out of order shard snapshots and the shard snapshot that is stored in the early received map in order into a results queue using the offset-slot mapping that is maintained for the requested shard snapshots and updated to include the shard snapshot based at least in part on the receive queue; and storing a single snapshot of the entire virtual machine in the computer memory based at least in part on the ordered shard snapshots. 14. The system of claim 13 , wherein the operations further include: maintaining a flow control queue that limits a number of the requested shard snapshots, wherein the flow control queue stores a set of tokens that limit the number of the requested shard snapshots and receives a token from the receive queue upon storage of a shard snapshot in the results queue. 15. The system of claim 14 , wherein the operations further include: maintaining the receive queue and transferring a token from the flow control queue to the receive queue upon receiving one of the requested shard

Assignees

Inventors

Classifications

  • for networked environments · CPC title

  • at device level, e.g. emulation of a storage device or system · CPC title

  • Single storage device · CPC title

  • Backup restoration techniques · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · 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 US11429418B2 cover?
A data management system having a storage appliance configured to store a snapshot of a virtual machine; and one or more processors in communication with the storage appliance. The one or more processors are configured to perform operations including: identifying a plurality of shards of the virtual machine; requesting a shard snapshot of each of the plurality of shards; receiving the shard sna…
Who is the assignee on this patent?
Rubrik Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/45558. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Aug 30 2022 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 12 related publications on this page (citations in our corpus or others sharing the same primary CPC).