Defragmentation for objects within object store

US11797477B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11797477-B2
Application numberUS-202117498368-A
CountryUS
Kind codeB2
Filing dateOct 11, 2021
Priority dateMar 8, 2019
Publication dateOct 24, 2023
Grant dateOct 24, 2023

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 are provided for managing objects within an object store. An object is maintained within an object store. The object comprises a plurality of slots. Each slot is used to store a unit of data accessible to applications hosted by remote computing devices. The object comprises an object header used to store metadata for each slot. A determination is made that the object is a fragmented object comprising an in-use slot of in-use data and a freed slot from which data was freed. The object is compacted to retain in-use data and exclude freed data as a rewritten object.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: creating an object comprising an object header used to store metadata for slots of the object, wherein the object header is part of the object; populating the object header with an indication that a slot comprises in-use data, wherein the in-use data is stored within the slot in a compressed state; in response to receiving a read operation for the in-use data, evaluating the object header to identify the slot within the object as comprising the in-use data; evaluating the object header to identify compression information used to decompress the in-use data from the compressed state to a decompressed state; and executing the read operation upon the slot, wherein the compression information is used to decompress the in-use data in the slot for access in the decompressed state by the read operation. 2. The method of claim 1 , comprising: in response to receiving an operation to write new data into the slot, creating a new version of the object for storing the new data. 3. The method of claim 2 , comprising: executing the operation upon the new version of the object to store the new data within the new version of the object. 4. The method of claim 3 , comprising: retaining the object in an unmodified state. 5. The method of claim 3 , comprising: populating a new object header of the new version of the object with metadata indicating that the new data is stored within a new slot of the new version of the object. 6. The method of claim 1 , comprising: setting a flag within the object header to indicate that the slot comprises normalized content. 7. The method of claim 1 , comprising: creating the object header as a static array of slot context comprising metadata used to access data in the slots of the object. 8. The method of claim 1 , wherein the in-use data comprises compressed data, and wherein the method comprises: populating the object header with information used to compress the compressed data within the slot. 9. The method of claim 1 , comprising: creating the object header having a size aligned with a start of a plurality of slots of the object. 10. A non-transitory machine readable medium comprising instructions for performing a method, which when executed by a machine, causes the machine to: create an object comprising an object header used to store metadata for slots of the object, wherein the object header is part of the object; populate the object header with an indication that a slot comprises in-use data, wherein the in-use data is stored within the slot in a compressed state; in response to receiving a read operation for the in-use data, evaluate the object header to identify the slot within the object as comprising the in-use data; evaluate the object header to identify compression information used to decompress the in-use data from the compressed state to a decompressed state; and execute the read operation upon the slot, wherein the compression information is used to decompress the in-use data in the slot for access in the decompressed state by the read operation. 11. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to: populate the object header with a version identifier of the object. 12. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to: populate the object header with a header checksum. 13. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to: populate the object header with a length of the object. 14. The non-transitory machine readable medium of claim 10 , wherein the instructions cause the machine to: populate the object header with a slot context of the slot in the object. 15. A computing device comprising: a memory comprising machine executable code for performing a method; and a processor coupled to the memory, the processor configured to execute the machine executable code to cause the processor to: create an object comprising an object header used to store metadata for slots of the object, wherein the object header is part of the object; populate the object header with an indication that a slot comprises in-use data, wherein the in-use data is stored within the slot in a compressed state; in response to receiving a read operation for the in-use data, evaluate the object header to identify the slot within the object as comprising the in-use data; evaluate the object header to identify compression information used to decompress the in-use data from the compressed state to a decompressed state; and execute the read operation upon the slot, wherein the compression information is used to decompress the in-use data in the slot for access in the decompressed state by the read operation. 16. The computing device of claim 15 , wherein the machine executable code causes the processor to: populate the object header with a slot context of the slot in the object. 17. The computing device of claim 16 , wherein the machine executable code causes the processor to: populate the slot context with a compression type of the slot. 18. The computing device of claim 16 , wherein the machine executable code causes the processor to: populate the slot context with a start offset of the slot within the object. 19. The computing device of claim 16 , wherein the machine executable code causes the processor to: populate the slot context with a logical data length of the slot within the object. 20. The computing device of claim 16 , wherein the machine executable code causes the processor to: populate the slot context with at least one of a logical data length of the slot, a compression length of the slot, an index of the slot within a compression group of multiple slots, or a logical data checksum.

Assignees

Inventors

Classifications

  • G06F16/128Primary

    Details of file system snapshots on the file-level, e.g. snapshot creation, administration, deletion (error detection or correction of the data by redundancy in operations or in hardware G06F11/14, G06F11/16) · CPC title

  • Details of searching files based on file metadata · CPC title

  • Retrieval characterised by using metadata, e.g. metadata not derived from the content or metadata generated manually · CPC title

  • Garbage collection, i.e. reclamation of unreferenced memory · 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 US11797477B2 cover?
Techniques are provided for managing objects within an object store. An object is maintained within an object store. The object comprises a plurality of slots. Each slot is used to store a unit of data accessible to applications hosted by remote computing devices. The object comprises an object header used to store metadata for each slot. A determination is made that the object is a fragmented …
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F16/128. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Oct 24 2023 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).