Reconstructing in-memory indices in a distributed data storage system

US10452271B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10452271-B2
Application numberUS-201715601598-A
CountryUS
Kind codeB2
Filing dateMay 22, 2017
Priority dateSep 25, 2014
Publication dateOct 22, 2019
Grant dateOct 22, 2019

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.

Reconstructing in-memory data block indices in a distributed data storage system where data blocks are stored in extents and the extents are replicated across storage devices. In one aspect, based on a reboot of a storage device and a copy of an extent stored in the storage device being in an open state, appends for data blocks in the copy of the extent stored in the storage device are replayed to reconstruct an in-memory data block index for the copy of the extent. In another aspect, based on a reboot of a storage device and a copy of an extent being in a closed state, a data block index for the copy of the extent is retrieved from non-volatile storage of the storage device and the retrieved data block index stored in memory at the storage device.

First claim

Opening claim text (preview).

What is claimed is: 1. A method performed by a computing system comprising one or more processors and memory, the method comprising: storing data blocks in extents, the extents replicated across a plurality of storage devices; wherein a particular extent is in either an open state or a closed state; writing a header to a copy of the particular extent, the header written indicating that the particular extent is in the open state, the copy of the particular extent stored at a particular storage device of the plurality of storage devices; wherein, when the particular extent is in the open state, data blocks are appended to the copy of the particular extent; based on a reboot of the particular storage device, determining that the particular extent is in the open state, and based on the determining that the particular extent is in the open state, replaying appends for the data blocks appended to the copy of the particular extent to reconstruct, at the particular storage device, an in-memory data block index for the copy of the particular extent; and wherein the determining the particular extent is in the open state is based on reading the header of the copy of the particular extent. 2. The method of claim 1 , wherein replaying appends for the data blocks in the copy of the particular extent comprises, for each data block in the copy of the particular extent, repeating all operations involved in appending the data block to the particular extent. 3. A method performed by a computing system comprising one or more processors and memory, the method comprising: storing data blocks in extents, the extents replicated across a plurality of storage devices; wherein a particular extent is in either an open state or a closed state; writing a first header to a copy of the particular extent, the copy of the particular extent stored at a particular storage device of the plurality of storage devices, the first header written indicating that the particular extent is in the open state; wherein, when the particular extent is in the open state, data blocks are appended to the copy of the particular extent; writing a data block index to the copy of the particular extent; after the writing the data block index to the copy of the particular extent, writing a second header to the copy of the particular extent, the second header written indicating that the particular extent is in the closed state; wherein, when the particular extent is in the closed state, data blocks are no longer appended to the copy of the particular extent; and based on a reboot of the particular storage device, determining that the particular extent is in the closed state, and based on the determining that the particular extent is in the closed state, retrieving the data block index from the copy of the particular extent from non-volatile storage in the particular storage device, and storing the retrieved data block index in memory at the particular storage device; and wherein the determining the particular extent is in the closed state is based on reading the second header of the copy of the particular extent. 4. The method of claim 3 , further comprising reading a key list associated with the retrieved data block index to obtain statistics about the data blocks stored in the particular extent. 5. The method of claim 3 , further comprising: loading a deleted list associated with the retrieved data block index into a bit map; and determining an end-of-file for the particular extent. 6. A non-transitory computer-readable storage medium storing instructions configured for: storing data blocks in extents, the extents replicated across a plurality of storage devices; wherein a particular extent is in either an open state or a closed state; writing a header to a copy of the particular extent, the header written indicating that the particular extent is in the open state, the copy of the particular extent stored at a particular storage device of the plurality of storage devices; wherein, when the particular extent is in the open state, data blocks are appended to the copy of the particular extent; based on a reboot of the particular storage device, determining that the particular extent is in the open state, and based on the determining that the particular extent is in the open state, replaying appends for the data blocks appended to the copy of the particular extent to reconstruct, at the particular storage device, an in-memory data block index for the copy of the particular extent; and wherein the determining the particular extent is in the open state is based on reading the header of the copy of the particular extent. 7. The non-transitory computer-readable storage medium of claim 6 , wherein replaying appends for the data blocks in the copy of the particular extent comprises, for each data block in the copy of the particular extent, repeating all operations involved in appending the data block to the particular extent. 8. A non-transitory computer-readable storage medium storing instructions configured for: storing data blocks in extents, the extents replicated across a plurality of storage devices; wherein a particular extent is in either an open state or a closed state; writing a first header to a copy of the particular extent, the copy of the particular extent stored at a particular storage device of the plurality of storage devices, the first header written indicating that the particular extent is in the open state; wherein, when the particular extent is in the open state, data blocks are appended to the copy of the particular extent; writing a data block index to the copy of the particular extent; after the writing the data block index to the copy of the particular extent, writing a second header to the copy of the particular extent, the second header written indicating that the particular extent is in the closed state; wherein, when the particular extent is in the closed state, data blocks are no longer appended to the copy of the particular extent; and based on a reboot of the particular storage device, determining that the particular extent is in the closed state, and based on the determining that the particular extent is in the closed state, retrieving the data block index from the copy of the particular extent from non-volatile storage in the particular storage device, and storing the retrieved data block index in memory at the particular storage device; and wherein the determining the particular extent is in the closed state is based on reading the second header of the copy of the particular extent. 9. The non-transitory computer-readable storage medium of claim 8 , the instructions further configured for reading a key list associated with the retrieved data block index to obtain statistics about the data blocks stored in the particular extent. 10. The non-transitory computer-readable storage medium of claim 8 , the instructions further configured for: loading a deleted list associated with the retrieved data block index into a bit map; and determining an end-of-file for the particular extent. 11. A computing system, comprising: one or more processors; one or more programs configured for execution by the one or more processors, the one or more programs comprising instructions configured for: storing data blocks in extents, the extents replicated across a plurality of storage devices; wherein a particular extent is in either an open state or a closed state; writing a header to a copy of the particular extent, the header written indicating that the particular extent is in the open state, the copy of the particular extent stored at a particular storage device of the plurality of storage devices; wherein,

Assignees

Inventors

Classifications

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

  • Ensuring data consistency and integrity · CPC title

  • G06F3/0607Primary

    by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device · CPC title

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

  • Non-volatile semiconductor memory arrays · 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 US10452271B2 cover?
Reconstructing in-memory data block indices in a distributed data storage system where data blocks are stored in extents and the extents are replicated across storage devices. In one aspect, based on a reboot of a storage device and a copy of an extent stored in the storage device being in an open state, appends for data blocks in the copy of the extent stored in the storage device are replayed…
Who is the assignee on this patent?
Dropbox Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/0607. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 22 2019 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 3 related publications on this page (citations in our corpus or others sharing the same primary CPC).