Method and system for tracking modification times of data in a storage system

US9378149B1 · US · B1

Patent metadata
FieldValue
Publication numberUS-9378149-B1
Application numberUS-201414473243-A
CountryUS
Kind codeB1
Filing dateAug 29, 2014
Priority dateAug 29, 2014
Publication dateJun 28, 2016
Grant dateJun 28, 2016

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 method for rebuilding an in-memory data structure. The method includes selecting a table of contents (TOC) entry of a TOC page in persistent storage, where the TOC entry includes an object identifier (ID) of an object, an offset ID, and a birth time. The method further includes determining, based on the object ID, that the in-memory data structure includes object metadata for the object including a mod time and an object map pointer to an object map tree. The method further includes that the birth time in the TOC entry is greater than the mod time, updating a stored physical address in the object map tree based on the offset ID to a physical address derived from the TOC entry; and updating the mod time stored in the object metadata to the birth time.

First claim

Opening claim text (preview).

What is claimed is: 1. A method for rebuilding an in-memory data structure, comprising: selecting a first table of contents (TOC) entry of a TOC page of a block in persistent storage, wherein the first TOC entry comprises a first object identifier (ID) of a first object, a first offset ID, and a first birth time; determining, based on the first object ID, that the in-memory data structure comprises a first object metadata for the first object comprising a first mod time and a first object map pointer to a first object map tree; determining, based on the first birth time, that the first birth time in the first TOC entry is greater than the first mod time of the first object; updating, after determining the first object metadata exists and after determining that the first birth time is greater than the first mod time, a first stored physical address in the first object map tree based on the first offset ID to a first physical address derived from the first TOC entry; and updating, after determining that the first birth time is greater than the first mod time, the first mod time stored in the first object metadata to the first birth time. 2. The method of claim 1 , further comprising: selecting a second TOC entry of the TOC page of the block in the persistent storage, wherein the second TOC entry comprises the first object ID of the first object, the first offset ID, and a second birth time; and determining, based on the second birth time, that the second birth time in the second TOC entry is not greater than the first mod time of the first object. 3. The method of claim 1 , further comprising: selecting a second TOC entry of the TOC page of the block in the persistent storage, wherein the second TOC entry comprises a second object ID of a second object, a second offset ID, and a second birth time; determining, based on the second object ID, that the in-memory data structure does not comprise a second object metadata for the second object; creating, based on the second object ID, the second object metadata in the in-memory data structure; populating the second object metadata with the second object ID, a size, a second mod time, a fragment size, and a second object map pointer; creating a second object map tree referenced by the second object map pointer; updating, after creating the second object map tree, a second stored physical address in the second object map tree based on the second offset ID to a second physical address derived from the second TOC entry; and updating, after populating the second object, the second mod time to the second birth time. 4. The method of claim 1 , wherein the first object metadata comprises the first object map pointer to the first object map tree, a size, the first mod time, the first object ID, a fragment size, and a type field. 5. The method of claim 4 , wherein the type field comprises a modification type, wherein the modification type is at least one selected from a group consisting of updating, cropping, and trimming. 6. The method of claim 1 , wherein the first TOC entry further comprises at least one selected from a group consisting of a fragment size, a page ID, a byte, and a type field. 7. The method of claim 1 , wherein the first object map tree comprises a pointer level comprising a plurality of pointers, and wherein the plurality of pointers reference a plurality of physical addresses comprising the first stored physical address. 8. The method of claim 7 , wherein the first stored physical address is located within the first object map tree by determining a pointer of the plurality of pointers that references the first stored physical address based on a function of the first offset ID and a fragment size. 9. The method of claim 1 , wherein the in-memory data structure is an array of a plurality of object metadata comprising the first object metadata. 10. The method of claim 1 , wherein the block is located in a solid state memory module, and wherein the in-memory data structure is located in memory external to the solid state memory module. 11. The method of claim 1 , wherein the persistent storage comprises solid state memory. 12. A non-transitory computer readable medium comprising instructions, which when executed by a processor perform a method, the method comprising: selecting a first table of contents (TOC) entry of a TOC page of a block in persistent storage, wherein the first TOC entry comprises a first object identifier (ID) of a first object, a first offset ID, and a first birth time; determining, based on the first object ID, that the in-memory data structure comprises a first object metadata for the first object comprising a first mod time and a first object map pointer to a first object map tree; determining, based on the first birth time, that the first birth time in the first TOC entry is greater than the first mod time of the first object; updating, after determining the first object metadata exists and after determining that the first birth time is greater than the first mod time, a first stored physical address in the first object map tree based on the first offset ID to a first physical address derived from the first TOC entry; and updating, after determining that the first birth time is greater than the first mod time, the first mod time stored in the first object metadata to the first birth time. 13. The non-transitory computer readable medium of claim 12 , the method further comprising: selecting a second TOC entry of the TOC page of the block in the persistent storage, wherein the second TOC entry comprises a second object ID of a second object, a second offset ID, and a second birth time; determining, based on the second object ID, that the in-memory data structure does not comprise a second object metadata for the second object; creating, based on the second object ID, the second object metadata in the in-memory data structure; populating the second object metadata with the second object ID, a size, a second mod time, a fragment size, and a second object map pointer; creating a second object map tree referenced by the second object map pointer; updating, after creating the second object map tree, a second stored physical address in the second object map tree based on the second offset ID to a second physical address derived from the second TOC entry; and updating, after populating the second object, the second mod time to the second birth time. 14. The non-transitory computer readable medium of claim 12 , the method further comprising: selecting a second TOC entry of the TOC page of the block in the persistent storage, wherein the second TOC entry comprises the first object ID of the first object, the first offset ID, and a second birth time; and determining, based on the second birth time, that the second birth time in the second TOC entry is not greater than the first mod time of the first object. 15. The non-transitory computer readable medium of claim 12 , wherein the first object metadata comprises the first object map pointer to the first object map tree, a size, the first mod time, the first object ID, a fragment size, and a type field. 16. The non-transitory computer readable medium of claim 12 , wherein the first TOC entry further comprises at least one selected from a group consisting of a fragment size, a page ID, a byte, and a type field. 17. The non-transitory computer readable medium of claim 12 , wherein the first object map tree comprises a pointer level comprising a plurality of pointers, and wherein the plurality of pointers reference a plurality of physical

Assignees

Inventors

Classifications

  • Logical to physical mapping or translation of blocks or pages · CPC title

  • Details of virtual memory and virtual address translation · CPC title

  • in block erasable memory, e.g. flash memory · CPC title

  • using page tables, e.g. page table structures · CPC title

  • management of metadata or control data · 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 US9378149B1 cover?
A method for rebuilding an in-memory data structure. The method includes selecting a table of contents (TOC) entry of a TOC page in persistent storage, where the TOC entry includes an object identifier (ID) of an object, an offset ID, and a birth time. The method further includes determining, based on the object ID, that the in-memory data structure includes object metadata for the object inclu…
Who is the assignee on this patent?
Bonwick Jeffrey S, Emc Corp
What technology area does this patent fall under?
Primary CPC classification G06F12/0246. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Jun 28 2016 00:00:00 GMT+0000 (Coordinated Universal Time) (B1). 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).