Systems, methods, and computer readable media providing arbitrary sizing of data extents

US11662929B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11662929-B2
Application numberUS-202017008978-A
CountryUS
Kind codeB2
Filing dateSep 1, 2020
Priority dateApr 21, 2016
Publication dateMay 30, 2023
Grant dateMay 30, 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.

A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent, wherein the descriptor indicates that the first data extent starts within the first block of the plurality of blocks and indicates an offset from the beginning of the first block at which the first data extent starts; and storing the descriptor within the first block.

First claim

Opening claim text (preview).

What is claimed is: 1. A method comprising: receiving a read request for a first data extent, wherein the first data extent is partially stored within a first physical block of a storage drive, and wherein the first physical block includes a descriptor indicating that the first data extent starts within the first physical block and is offset from a beginning of the first physical block, and wherein the descriptor is physically in-line within the first data extent between a first portion of the first data extent stored within the first physical block and a second portion of the first data extent stored within a second physical block adjacent the first physical block; reading the first physical block as a whole, including the first portion of the first data extent; parsing the descriptor to determine the offset; accessing the first portion of the first data extent using the offset; and returning a response, including the first portion of the first data extent, to a requesting host. 2. The method of claim 1 , wherein the first data extent spans the first physical block and the second physical block of the storage drive. 3. The method of claim 1 , wherein the descriptor includes a checksum, the method further comprising: verifying the first data extent using the checksum. 4. The method of claim 1 , wherein the descriptor includes a checksum, the method further comprising: causing an input output controller of a storage system to verify the first data extent using the checksum. 5. The method of claim 1 , wherein parsing the descriptor to determine the offset includes summing an initial offset from the beginning of the first physical block and a length of a second data extent stored to the first physical block. 6. The method of claim 1 , wherein the descriptor further includes a first write sequence number for the first data extent, the method further comprising: verifying that the first write sequence number of the first data extent matches a second write sequence number of a second data extent within a segment that includes both the first data extent and the second data extent. 7. The method of claim 1 , wherein the descriptor comprises either a header or a footer within the first physical block. 8. The method of claim 1 , wherein the descriptor is adjacent another descriptor within the first physical block. 9. The method of claim 1 , further comprising: identifying the first physical block by reading metadata stored to a physical medium separate from the storage drive. 10. A method performed by a storage controller of a storage system, the method comprising: generating a descriptor of a first data extent, wherein the descriptor indicates that storage of contents of the first data extent starts within a first physical block of a plurality of physical blocks of a storage drive and indicates an offset from a beginning of the first physical block at which storage of the contents of the first data extent starts; storing the descriptor and a first portion of the contents of the first data extent within the first physical block, wherein the descriptor is physically in-line within the first data extent between the first portion of the contents of the first data extent stored within the first physical block and a second portion of the contents of the first data extent stored within a second physical block adjacent the first physical block; reading the first physical block from the storage drive, including reading the first portion of the contents of the first data extent and the descriptor; determining the offset from the descriptor; and accessing the first portion of the contents of the first data extent according to the offset. 11. The method of claim 10 , wherein the descriptor further includes a field indicating a total non-zero number of data extents having contents stored starting within the first physical block, and further wherein the first physical block stores contents of a second data extent included within the total non-zero number. 12. The method of claim 10 , wherein the first data extent spans the first physical block and the second physical block of the storage drive. 13. The method of claim 10 , wherein the descriptor includes a checksum, the method further comprising: verifying the first data extent using the checksum; or marking the first data extent as invalid in response to the checksum indicating error. 14. The method of claim 10 , wherein the descriptor includes a checksum, the method further comprising: causing an input output controller of the storage system to verify the first data extent using the checksum. 15. The method of claim 10 , wherein determining the offset includes summing an initial offset from the beginning of the first physical block and a length of a second data extent stored to the first physical block. 16. A storage controller comprising: a memory containing machine readable medium comprising machine executable code; a central processing unit (CPU) coupled to the memory, the CPU configured to execute the machine executable code to cause the CPU to: receive a read request for a first data extent, wherein a first portion of the first data extent and a second data extent are stored within a first physical block of a storage drive, and wherein the first physical block includes a descriptor indicating that the first data extent and the second data extent both start within the first physical block and indicating a length of the second data extent, and wherein the descriptor is physically in-line within the first data extent between the first portion of the first data extent and a second portion of the first data extent stored within a second physical block adjacent the first physical block; read the first physical block, including the first portion of the first data extent, the second data extent, and the descriptor; sum an initial offset from a beginning of the first physical block and the length of the second data extent to determine an offset of the first data extent; access the first portion of the first data extent using the offset of the first data extent; and return a response, including the first portion of the first data extent, to a requesting host. 17. The storage controller of claim 16 , further comprising an input output controller, and wherein the descriptor includes a checksum, the CPU further configured to: cause the input output controller of the storage controller to verify the first data extent using the checksum. 18. The storage controller of claim 16 , wherein the first data extent spans the first physical block and a second physical block of the storage drive. 19. The storage controller of claim 16 , wherein the descriptor further includes a first write sequence number for the first data extent, and wherein the CPU is further configured to: verify that the first write sequence number of the first data extent matches a second write sequence number of a third data extent within a segment that includes both the first data extent and the third data extent. 20. The storage controller of claim 16 , wherein the CPU is further configured to: identifying the first physical block by reading metadata stored to a physical medium separate from the storage drive.

Assignees

Inventors

Classifications

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

  • to protect a block of data words, e.g. CRC or checksum (G06F11/1076 takes precedence; security arrangements for protecting computers or computer systems against unauthorized activity G06F21/00) · CPC title

  • Disk arrays, e.g. RAID, JBOD · CPC title

  • G06F3/064Primary

    Management of blocks · CPC title

  • by facilitating the process of upgrading existing storage systems, e.g. for improving compatibility between host and storage device · 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 US11662929B2 cover?
A method includes: storing a first data extent on a physical medium, wherein the physical medium is divided into a plurality of storage blocks, wherein each of the storage blocks has a size that is different than a size of the first data extent, further wherein the first data extent is stored to a first block of the plurality of storage blocks; generating a descriptor for the first data extent,…
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/064. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue May 30 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).