Upgrading On-Disk Format Without Service Interruption

US2022019528A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2022019528-A1
Application numberUS-202016933162-A
CountryUS
Kind codeA1
Filing dateJul 20, 2020
Priority dateJul 20, 2020
Publication dateJan 20, 2022
Grant date

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 logical map represents fragments from separate versions of a data object. Migration of data from a first (old) version to the second (new) version happens gradually, where write operations go to the new version of the data object. The logical map initially points to the old data object, but is updated to point to the portions of the new data object as write operations are performed on the new data object. A background migration copies data from the old data object to the new data object.

First claim

Opening claim text (preview).

1 . A method comprising: receiving a read operation to read data from a data object; accessing a plurality of map entries stored in a logical map, the logical map representing fragments of a first version of the data object and fragments of a second version of the data object, each map entry including a flag that is set to indicate whether a fragment is the first version of the data object or the fragment is the second version of the data object; and reading data from each fragment represented by each of the plurality of accessed map entries including: when said each accessed map entry includes the flag that is set to indicate a fragment is the first version of the data object, then reading the data from the first version of the data object; and when said each accessed map entry includes the flag that is set to indicate a fragment is the second version of the data object, then reading the data from the second version of the data object. 2 . The method of claim 1 , wherein the received read operation specifies a starting logical block L in the data object, the method including: accessing a first map entry from the logical map that represents a fragment containing the starting logical block L; and reading a portion of data contained the fragment determined based on a location of the starting logical block within the fragment. 3 . The method of claim 2 , wherein reading a portion of data contained the fragment is further determined based on a remaining number of blocks of the read operation. 4 . The method of claim 1 , wherein a fragment of the first version of the data object comprises one or more logical blocks of the data object that are stored in the first version of the data object, wherein a fragment of the second version of the data object comprises one or more logical blocks of the data object that are stored in the second version of the data object. 5 . The method of claim 1 , wherein each map entry in the logical map comprises a logical block address (LBA) of a first logical block in the fragment represented by said each map entry and a block count of the number of blocks in the fragment, wherein accessing the map entry includes searching the plurality of map entries in the logical map for a map entry having the largest logical block address that is equal to or less than the starting block L. 6 . The method of claim 1 , wherein reading data from the first or second version of the data object includes accessing one or more physical data blocks on a respective data storage device of the first or second version of the data object and using physical block address (PBA) information in the accessed map entry to access the one or more physical data blocks on the respective data storage device. 7 . The method of claim 1 , wherein the first version of the data object is a virtual disk having a first storage format, wherein the second version of the data object is virtual disk having a second storage format different from the first storage format. 8 . A non-transitory computer-readable storage medium having stored thereon computer executable instructions, which when executed by a computer device, cause the computer device to: receive a read operation to read data from a data object; access a plurality of map entries stored in a logical map, the logical map representing fragments of a first version of the data object and fragments of a second version of the data object, each map entry including a flag that is set to indicate whether a fragment is the first version of the data object or the fragment is the second version of the data object; and read data from each fragment represented by each of the plurality of accessed map entries including: when said each accessed map entry includes the flag that is set to indicate a fragment is the first version of the data object, then reading the data from the first version of the data object; and when said each accessed map entry includes the flag that is set to indicate a fragment is the second version of the data object, then reading the data from the second version of the data object. 9 . The non-transitory computer-readable storage medium of claim 8 , wherein the read operation specifies a starting logical block L in the data object, the method including: accessing a first map entry from the logical map that represents a fragment containing the starting logical block L; and reading a portion of data contained the fragment determined based on a location of the starting logical block within the fragment. 10 . The non-transitory computer-readable storage medium of claim 9 , wherein reading a portion of data contained the fragment is further determined based on a remaining number of blocks of the read operation. 11 . The non-transitory computer-readable storage medium of claim 8 , wherein a fragment of the first version of the data object comprises one or more logical blocks of the data object that are stored in the first version of the data object, wherein a fragment of the second version of the data object comprises one or more logical blocks of the data object that are stored in the second version of the data object. 12 . The non-transitory computer-readable storage medium of claim 8 , wherein each map entry in the logical map comprises a logical block address (LBA) of a first logical block in the fragment represented by said each map entry and a block count of the number of blocks in the fragment, wherein accessing the map entry includes searching the plurality of map entries in the logical map for a map entry having the largest logical block address that is equal to or less than the starting block L. 14 . The non-transitory computer-readable storage medium of claim 8 , wherein reading data from the first or second version of the data object includes accessing one or more physical data blocks on a respective data storage device of the first or second version of the data object and using physical block address (PBA) information in the accessed map entry to access the one or more physical data blocks on the respective data storage device. 15 . The non-transitory computer-readable storage medium of claim 8 , wherein the first version of the data object is a virtual disk having a first storage format, wherein the second version of the data object is virtual disk having a second storage format different from the first storage format. 16 . An apparatus comprising: one or more computer processors; and a non-transitory computer-readable storage medium comprising instructions for controlling the one or more computer processors to: receive a read operation to read data from a data object; access a plurality of map entries stored in a logical map, the logical map representing fragments of a first version of the data object and fragments of a second version of the data object, each map entry including a flag that is set to indicate whether a fragment is the first version of the data object or the fragment is the second version of the data object; and read data from each fragment represented by each of the plurality of accessed map entries including: when said each accessed map entry includes the flag that is set to indicate a fragment is the first version of the data object, then read the data from the first version of the data object; and when said each accessed map entry includes the flag that is set to indicate a fragment is the second version of the data object, then read the data from the second version of the data object. 17 . The apparatus of claim 15 , wherein the read operation specifies a starting logical block L in the data ob

Assignees

Inventors

Classifications

  • Management of blocks · CPC title

  • G06F3/0617Primary

    in relation to availability · CPC title

  • Format or protocol conversion arrangements · CPC title

  • Disk device · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · 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 US2022019528A1 cover?
A logical map represents fragments from separate versions of a data object. Migration of data from a first (old) version to the second (new) version happens gradually, where write operations go to the new version of the data object. The logical map initially points to the old data object, but is updated to point to the portions of the new data object as write operations are performed on the new…
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0617. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jan 20 2022 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). 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).