Systems and methods for allocating data compression activities in a storage system

US11500592B2 · US · B2

Patent metadata
FieldValue
Publication numberUS-11500592-B2
Application numberUS-201916707651-A
CountryUS
Kind codeB2
Filing dateDec 9, 2019
Priority dateSep 13, 2016
Publication dateNov 15, 2022
Grant dateNov 15, 2022

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, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one or more host read requests including decompressing the data requested by the one or more hosts from the storage server and providing the decompressed data to the one or more hosts. The storage controller determines an amount of available computing resources after processing the one or more host read requests. Based on the amount of available computing resources, the storage controller performs inline compression of a first portion of host write requests and background compression of a second portion of the host write requests.

First claim

Opening claim text (preview).

What is claimed is: 1. A method, comprising: decompressing, by a storage controller, data requested by a first read request from a host for the data to be returned to the host by a first amount of computing resources of the storage controller and providing the requested data to the host after decompressing; receiving, by the storage controller, a second request, the second request being a host write request comprising at least one of warm data or cold data, or a garbage collection task comprising at least one of compression of cold data, compression of warm data, or recompression of already compressed data; determining, by the storage controller in response to receiving the second request, a second amount of computing resources available for another processing task after use of the first amount of computing resources by the first read request; applying, by the storage controller, a priority ordering to a plurality of processing tasks including a task associated with the second request, wherein the priority ordering prioritizes the compression of cold data as the garbage collection task over compression of cold data from the host write request, the compression of cold data from the host write request over compression of warm data as the garbage collection task, the compression of warm data as the garbage collection task over the compression of warm data from the host write request, and the compression of warm data from the host write request over recompression of already compressed data as the garbage collection task; selecting, by the storage controller, a processing task from among the plurality of processing tasks based on the applied priority ordering for which the second amount of computing resources is sufficient; and performing the selected processing task by the storage controller. 2. The method of claim 1 , wherein selecting further comprises: prioritizing, by the storage controller, the compression of cold data as the garbage collection task before the host write request based on an expected frequency of modification of the already compressed data. 3. The method of claim 1 , wherein selecting further comprises: prioritizing, by the storage controller, the compression of cold data as the host write request before the compression of warm data as the garbage collection task, based on an expected frequency of modification of data from the host write request being less than an expected frequency of modification of the already compressed data. 4. The method of claim 1 , wherein the selecting further comprises: determining, by the storage controller, to perform inline compression of the host write request as the selected processing task in response to the second amount of computing resources being above a threshold. 5. The method of claim 1 , wherein the selecting further comprises: determining, by the storage controller, to perform background processing of the host write request as the selected processing task in response to the second amount of computing resources being below a threshold. 6. The method of claim 1 , wherein the method further comprising: selecting, by the storage controller, in response to a third amount of computing resources being available after use of the first and second amounts of computing resources, a second processing task from among the plurality of processing tasks based on the priority ordering for which the third amount of computing resources is sufficient. 7. The method of claim 1 , wherein the determining the second amount of computing resources further comprises: determining, by the storage controller, processor usage, memory bandwidth, drive utilization, and I/O latency of the storage controller. 8. A computing device comprising: at least one memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of prioritizing compression activities during input/output (I/O) operation; and at least one processor coupled to the at least one memory, the at least one processor configured to execute the machine executable code to cause the at least one processor to: receive a first read request from a host; determine to decompress data in response to receiving the first read request for the data to be returned to the host; decompress the data for the first read request using a first amount of computing resources from a total amount of computing resources available to the computing device and provide the requested data to the host after the decompression; receive a second request, the second request being a write request comprising at least one of warm data or cold data, or a garbage collection task comprising at least one of compression of cold data, compression of warm data, or recompression of already compressed data; determine, in response to receiving the second request, a second amount of computing resources available for another processing task after use of the first amount of computing resources; apply, in response to receiving the second request, a priority ordering to a plurality of processing tasks including a task associated with the second request, wherein the priority ordering prioritizes the compression of cold data as the garbage collection task over compression of cold data from the write request, the compression of cold data from the write request over compression of warm data as the garbage collection task, the compression of warm data as the garbage collection task over the compression of warm data from the write request, and the compression of warm data from the write request over recompression of already compressed data as the garbage collection task; select, a processing task from among the plurality of processing tasks based on the applied priority ordering for which the second amount of computing resources is sufficient; and perform the selected processing task. 9. The computing device of claim 8 , wherein the at least one processor is further configured, as part of the selection, to execute the machine executable code to cause the at least one processor to: prioritize the compression of cold data as the garbage collection task before the write request based on an expected frequency of modification of the already compressed data. 10. The computing device of claim 8 , wherein the the at least one processor is further configured, as part of the selection, to execute the machine executable code to cause the at least one processor to: prioritize the compression of cold data as the write request before the compression of warm data as the garbage collection task, based on an expected frequency of modification of data from the write request being less than an expected frequency of modification of the already compressed data. 11. The computing device of claim 8 , wherein the at least one processor is further configured, as part of the selection, to execute the machine executable code to cause the at least one processor to: determine to perform inline compression of the write request as the selected processing task in response to the second amount of computing resources being above a threshold. 12. The computing device of claim 8 , wherein the at least one processor is further configured, as part of the selection, to execute the machine executable code to cause the at least one processor to: determine to perform background processing of the write request as the selected processing task in response to the second amount of computing resources being below a threshold. 13. The computing device of claim 8 , wherein the at least one processor is further configured to execute the machine executable code to cause the at

Assignees

Inventors

Classifications

  • Saving storage space on storage systems · CPC title

  • G06F3/067Primary

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

  • Improving I/O performance · CPC title

  • Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · 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 US11500592B2 cover?
A method, a computing device, and a non-transitory machine-readable medium for allocating data compression activities in a storage system are provided. A method includes tracking, by a storage controller, computing resources corresponding to a storage server. The storage controller processes one or more host read requests to access data requested by one or more hosts, the processing of the one …
Who is the assignee on this patent?
Netapp Inc
What technology area does this patent fall under?
Primary CPC classification G06F3/067. Mapped technology areas include Physics.
When was this patent published?
Publication date Tue Nov 15 2022 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).