Issuing efficient writes to erasure coded objects in a distributed storage system with two tiers of storage

US11334277B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11334277-B2
Application numberUS-202016842649-A
CountryUS
Kind codeB2
Filing dateApr 7, 2020
Priority dateApr 7, 2020
Publication dateMay 17, 2022
Grant dateMay 17, 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.

Techniques for issuing efficient writes to an erasure coded storage object in a distributed storage system are provided. In one set of embodiments, a node of the system can receive a write request for updating a logical data block of the storage object, write data/metadata for the block to a record in a data log of a metadata object of the storage object (where the metadata object is stored on a performance storage tier), place the block data in a free slot of an in-memory bank, and determine whether the in-memory bank has become full. If the in-memory bank is full, the node can further allocate a segment in a capacity object of the storage object for holding contents of the in-memory bank (where the capacity object is stored on a capacity storage tier), and write the in-memory bank contents via a full stripe write to the allocated segment.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for issuing efficient writes to an erasure coded storage object maintained by a distributed storage system, the method comprising: receiving, by a node of the distributed storage system, a write request for updating a logical block of the storage object; writing, by the node, data and metadata for the logical data block to a data log record in a data log of a metadata object of the storage object, the metadata object being stored on a first storage tier of the distributed storage system comprising a first set of one or more storage devices; placing, by the node, the data for the logical data block in a free slot of an in-memory bank, the in-memory bank being configured to hold a predefined number of stripes of the storage object in accordance with an erasure coding scheme assigned to the storage object; in response to the placing, determining, by the node, whether the in-memory bank has become full; and in response to determining that the in-memory bank has become full: computing and filling one or more parity blocks for each stripe of the storage object in the in-memory bank; allocating a segment in a capacity object of the storage object for holding contents of the in-memory bank, the capacity object being stored on a second storage tier of the distributed storage system comprising a second set of one or more storage devices, the second storage tier having lower I/O performance but higher storage capacity than the first storage tier; and writing the contents of the in-memory bank via a full stripe write to the segment of the capacity object on the second storage tier. 2. The method of claim 1 wherein the metadata object is created and managed on the first storage tier using a overwrite-based file system disk layout, and wherein the capacity object is created and managed on the second storage tier using a log-structured file system (LFS) disk layout. 3. The method of claim 1 wherein the capacity object is striped across the second storage tier in accordance with the erasure coding scheme assigned to the storage object, and wherein the metadata object is mirrored across the first storage tier in a manner that enables the metadata object to achieve an equivalent level of fault tolerance as the capacity object. 4. The method of claim 1 further comprising, prior to computing and filling in the one or more parity blocks: reordering data for one or more logical data blocks in the in-memory bank. 5. The method of claim 4 wherein the one or more logical data blocks have contiguous logical block addresses (LBAs) in an address space of the storage object, and wherein the reordering causes the one or more data blocks to be placed in contiguous slots of a single column of the in-memory bank. 6. The method of claim 1 wherein the erasure coding scheme of the storage object is 4+2 RAID-6 and wherein the in-memory bank is configured to hold 32 stripes of the storage object. 7. The method of claim 1 further comprising, subsequently to the writing: for each logical data block included in the in-memory bank, updating a logical map in an in-memory metadata cache with a mapping between a LBA of the logical data block and PBA on the second storage tier where the logical data block has been written; and periodically flushing the logical map from the in-memory metadata cache to the metadata object on the first storage tier. 8. A non-transitory computer readable storage medium having stored thereon program code executable by a node in a distributed storage system, the program code embodying a method for issuing efficient writes to an erasure coded storage object maintained by the distributed storage system, the method comprising: receiving a write request for updating a logical block of the storage object; writing data and metadata for the logical data block to a data log record in a data log of a metadata object of the storage object, the metadata object being stored on a first storage tier of the distributed storage system comprising a first set of one or more storage devices; placing the data for the logical data block in a free slot of an in-memory bank, the in-memory bank being configured to hold a predefined number of stripes of the storage object in accordance with an erasure coding scheme assigned to the storage object; in response to the placing, determining whether the in-memory bank has become full; and in response to determining that the in-memory bank has become full: computing and filling one or more parity blocks for each stripe of the storage object in the in-memory bank; allocating a segment in a capacity object of the storage object for holding contents of the in-memory bank, the capacity object being stored on a second storage tier of the distributed storage system comprising a second set of one or more storage devices, the second storage tier having lower I/O performance but higher storage capacity than the first storage tier; and writing the contents of the in-memory bank via a full stripe write to the segment of the capacity object on the second storage tier. 9. The non-transitory computer readable storage medium of claim 8 wherein the metadata object is created and managed on the first storage tier using a overwrite-based file system disk layout, and wherein the capacity object is created and managed on the second storage tier using a log-structured file system (LFS) disk layout. 10. The non-transitory computer readable storage medium of claim 8 wherein the capacity object is striped across the second storage tier in accordance with the erasure coding scheme assigned to the storage object, and wherein the metadata object is mirrored across the first storage tier in a manner that enables the metadata object to achieve an equivalent level of fault tolerance as the capacity object. 11. The non-transitory computer readable storage medium of claim 8 wherein the method further comprises, prior to computing and filling in the one or more parity blocks: reordering data for one or more logical data blocks in the in-memory bank. 12. The non-transitory computer readable storage medium of claim 11 wherein the one or more logical data blocks have contiguous logical block addresses (LBAs) in an address space of the storage object, and wherein the reordering causes the one or more data blocks to be placed in contiguous slots of a single column of the in-memory bank. 13. The non-transitory computer readable storage medium of claim 8 wherein the erasure coding scheme of the storage object is 4+2 RAID-6 and wherein the in-memory bank is configured to hold 32 stripes of the storage object. 14. The non-transitory computer readable storage medium of claim 8 wherein the method further comprises, subsequently to the writing: for each logical data block included in the in-memory bank, updating a logical map in an in-memory metadata cache with a mapping between a LBA of the logical data block and PBA on the second storage tier where the logical data block has been written; and periodically flushing the logical map from the in-memory metadata cache to the metadata object on the first storage tier. 15. A computer system acting as a node in a distributed storage system, the computer system comprising: a processor; a first storage device that is part of a first storage tier of the distributed storage system; a second storage device that is part of a second storage tier of the distributed storage system; and a non-transitory computer readable medium having stored thereon program code that, when executed, causes the processor to: receive a write request for updating a logical b

Assignees

Inventors

Classifications

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • by allocating resources to storage systems · CPC title

  • Management of blocks · CPC title

  • Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title

  • Improving I/O performance · 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 US11334277B2 cover?
Techniques for issuing efficient writes to an erasure coded storage object in a distributed storage system are provided. In one set of embodiments, a node of the system can receive a write request for updating a logical data block of the storage object, write data/metadata for the block to a record in a data log of a metadata object of the storage object (where the metadata object is stored on …
Who is the assignee on this patent?
Vmware Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0652. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 17 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 5 related publications on this page (citations in our corpus or others sharing the same primary CPC).