Methods and systems for efficiently reading a data block from a data seglet with compressed data blocks

US10027984B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-10027984-B2
Application numberUS-201715590438-A
CountryUS
Kind codeB2
Filing dateMay 9, 2017
Priority dateNov 30, 2016
Publication dateJul 17, 2018
Grant dateJul 17, 2018

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.

When data blocks of a data seglet are compressed using a shared dictionary and when the requested data block (or blocks) do not include the last data block of the data seglet, an optimization in the read path may involve decompressing a certain portion of the data seglet from a starting position of the data seglet to a decompression endpoint of the data seglet, but not including the portion of the data seglet following the decompression endpoint. Such technique may involve the storing of a mapping that maps, for each data block within the data seglet, an identifier of the data block to a decompression endpoint that indicates a portion of the data seglet that includes the data block.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: receiving a request for a first data block that is stored on one or more storage units; determining a data seglet that includes a compressed version of the first data block, wherein the data seglet includes a plurality of compressed data blocks, wherein the plurality of compressed data blocks includes the compressed version of the first data block, and wherein the data seglet includes a starting position and an ending position; retrieving, from a mapping which maps data blocks to hints, a first hint corresponding to the first data block, the first hint indicating a first decompression endpoint within the data seglet, wherein the first decompression endpoint is located at or after an ending position of the compressed version of the first data block and is located at or before the ending position of the data seglet, wherein the mapping maps a second data block of the data seglet to a second hint indicating a second decompression endpoint within the data seglet, and wherein the first decompression endpoint is different than the second decompression endpoint; reading at least a portion of the data seglet from the one or more storage units; decompressing a contiguous portion of the data seglet, the contiguous portion spanning only between the starting position of the data seglet and the first decompression endpoint; determining a region of the decompressed contiguous portion within which the first data block is located; and returning the first data block from the determined region of the decompressed contiguous portion. 2. The method of claim 1 , wherein the at least portion of the data seglet that is read consists of the contiguous portion. 3. The method of claim 1 , wherein the at least portion of the data seglet that is read includes an entirety of the data seglet. 4. The method of claim 1 , wherein the first decompression endpoint is located at the ending position of the compressed version of the first data block. 5. The method of claim 1 , wherein the first decompression endpoint is located after the ending position of the compressed version of the first data block. 6. The method of claim 1 , wherein the first decompression endpoint is located before the ending position of the data seglet. 7. The method of claim 1 , wherein the starting position of the data seglet is equal to a starting position of a header of the data seglet. 8. A storage system, comprising: a plurality of storage units; a processor communicatively coupled to the storage units; and a processor-readable medium storing instructions that, when executed by the processor, cause the processor to: receive a request for a first data block that is stored on one or more of the storage units; determine a data seglet that includes a compressed version of the first data block, wherein the data seglet includes a plurality of compressed data blocks, wherein the plurality of compressed data blocks includes the compressed version of the first data block, and wherein the data seglet includes a starting position and an ending position; retrieve, from a mapping which maps data blocks to hints, a first hint corresponding to the first data block, the first hint indicating a first decompression endpoint within the data seglet, wherein the first decompression endpoint is located at or after an ending position of the compressed version of the first data block and is located at or before the ending position of the data seglet, wherein the mapping maps a second data block of the data seglet to a second hint indicating a second decompression endpoint within the data seglet, and wherein the first decompression endpoint is different than the second decompression endpoint; read at least a portion of the data seglet from the one or more storage units; decompress a contiguous portion of the data seglet, the contiguous portion spanning only between the starting position of the data seglet and the first decompression endpoint; determine a region of the decompressed contiguous portion within which the first data block is located; and return the first data block from the determined region of the decompressed contiguous portion. 9. The storage system of claim 8 , wherein the at least portion of the data seglet that is read consists of the contiguous portion. 10. The storage system of claim 8 , wherein the at least portion of the data seglet that is read includes an entirety of the data seglet. 11. The storage system of claim 8 , wherein the first decompression endpoint is located at the ending position of the compressed version of the first data block. 12. The storage system of claim 8 , wherein the first decompression endpoint is located after the ending position of the compressed version of the first data block. 13. The storage system of claim 8 , wherein the first decompression endpoint is located before the ending position of the data seglet. 14. The storage system of claim 8 , wherein the starting position of the data seglet is equal to a starting position of a header of the data seglet. 15. A non-transitory machine-readable storage medium comprising software instructions that, when executed by a processor, cause the processor to: receive a request for a first data block that is stored on one or more of a plurality of storage units of a storage system; determine a data seglet that includes a compressed version of the first data block, wherein the data seglet includes a plurality of compressed data blocks, wherein the plurality of compressed data blocks includes the compressed version of the first data block, and wherein the data seglet includes a starting position and an ending position; retrieve, from a mapping which maps data blocks to hints, a first hint corresponding to the first data block, the first hint indicating a first decompression endpoint within the data seglet, wherein the first decompression endpoint is located at or after an ending position of the compressed version of the first data block and is located at or before the ending position of the data seglet, wherein the mapping maps a second data block of the data seglet to a second hint indicating a second decompression endpoint within the data seglet, and wherein the first decompression endpoint is different than the second decompression endpoint; read at least a portion of the data seglet from the one or more storage units; decompress a contiguous portion of the data seglet, the contiguous portion spanning only from the starting position of the data seglet to the first decompression endpoint; determine a region of the decompressed contiguous portion within which the first data block is located; and return the first data block from the determined region of the decompressed contiguous portion. 16. The non-transitory machine-readable storage medium of claim 15 , wherein the at least portion of the data seglet that is read consists of the contiguous portion. 17. The non-transitory machine-readable storage medium of claim 15 , wherein the at least portion of the data seglet that is read includes an entirety of the data seglet. 18. The non-transitory machine-readable storage medium of claim 15 , wherein the first decompression endpoint is located at the ending position of the compressed version of the first data block. 19. The non-transitory machine-readable storage medium of claim 15 , wherein the first decompression endpoint is located after the ending position of the compressed version of the first data block. 20. The non-transitory machine-readable st

Assignees

Inventors

Classifications

  • characterised by implementation details or hardware specially adapted for video compression or decompression, e.g. dedicated software implementation (H04N19/635 takes precedence) · CPC title

  • with detection of the former encoding block subdivision in decompressed video · CPC title

  • using compression techniques · CPC title

  • H04N19/66Primary

    involving data partitioning, i.e. separation of data into packets or partitions according to importance · CPC title

  • Adaptive subdivision aspects, e.g. subdivision of a picture into rectangular or non-rectangular coding blocks · 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 US10027984B2 cover?
When data blocks of a data seglet are compressed using a shared dictionary and when the requested data block (or blocks) do not include the last data block of the data seglet, an optimization in the read path may involve decompressing a certain portion of the data seglet from a starting position of the data seglet to a decompression endpoint of the data seglet, but not including the portion of …
Who is the assignee on this patent?
Hewlett Packard Entpr Dev Lp
What technology area does this patent fall under?
Primary CPC classification H04N19/66. Mapped technology areas include Electricity.
When was this patent published?
Publication date Tue Jul 17 2018 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 8 related publications on this page (citations in our corpus or others sharing the same primary CPC).