Network storage device using dynamic weights based on resource utilization

US2017192823A1 · US · A1

Patent metadata
FieldValue
Publication numberUS-2017192823-A1
Application numberUS-201715463938-A
CountryUS
Kind codeA1
Filing dateMar 20, 2017
Priority dateSep 30, 2014
Publication dateJul 6, 2017
Grant date

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.

Methods, systems, and computer programs are presented for allocating CPU cycles and disk Input/Output's (IOs) to resource-creating processes based on dynamic weights that change according to the current percentage of resource utilization in the storage device. One method includes operations for assigning a first weight to a processing task that increases resource utilization of a resource for processing incoming input/output (IO) requests, and for assigning a second weight to a generating task that decreases the resource utilization of the resource. Further, the method includes an operation for dynamically adjusting the second weight based on the current resource utilization in the storage system. Additionally, the method includes an operation for allocating the CPU cycles and disk IOs to the processing task and to the generating task based on their respective first weight and second weight.

First claim

Opening claim text (preview).

What is claimed is: 1 . A method for allocating CPU (central processing unit) cycles and disk IOs of a storage system, the method comprising: assigning a first weight to a processing task that increases resource utilization of a resource for processing incoming input/output (TO) requests; assigning a second weight to a generating task that decreases the resource utilization of the resource; dynamically adjusting the second weight within a range of values including and ranging from a first value to a second value based on a current resource utilization in the storage system, wherein the second value is greater than the first value; and allocating the CPU cycles and disk IOs to the processing task and to the generating task based on their respective first weight and second weight. 2 . The method of claim 1 , wherein the dynamically adjusting the second weight further comprises: adjusting the second weight to a variable value between a first value and a second value when the current utilization is between and including a first predetermined threshold and a second predetermined threshold, wherein the second predetermined threshold is greater than the first predetermined threshold. 3 . The method of claim 2 , further comprising: adjusting the second weight to the first value when the current resource utilization in the storage system is less than the first predetermined threshold. 4 . The method of claim 2 , further comprising: adjusting the second weight to the second value when the current resource utilization in the storage system is greater than the second predetermined threshold. 5 . The method of claim 2 , wherein the variable value grows linearly from the first value to the second value when the resource utilization is between the first predetermined threshold and the second predetermined threshold. 6 . The method of claim 2 , wherein the variable value grows exponentially from the first value to the second value when the resource utilization is between the first predetermined threshold and the second predetermined threshold. 7 . The method of claim 2 , wherein the variable value grows in a step function from the first value to the second value when the resource utilization is between the first predetermined threshold and the second predetermined threshold. 8 . The method of claim 2 , further comprising: adding a first new instance of the generating task when the current resource utilization is greater than the first predetermined threshold; adding a second new instance of the generating task when the current resource utilization exceeds a fourth threshold that is greater than the first predetermined threshold. 9 . A storage system comprising: a non-volatile memory (NVRAM) for storing incoming input/output (TO) requests; a storage drive for permanent data storage; and a central processing unit (CPU), wherein a processing task and a generating task are executed by the CPU, the processing task increasing resource utilization of a resource for processing incoming IO requests, the generating task decreasing the resource utilization of the resource, wherein a CPU scheduler and a disk scheduler assign a first priority weight to the processing task-and a second priority weight to the generating task; wherein the CPU scheduler and the disk scheduler dynamically adjust the second weight within a range of values including and ranging from a first value to a second value based on a current resource utilization in the storage system, wherein the second value is greater than the first value, wherein the CPU scheduler and the disk scheduler allocate CPU cycles and disk IOs to the processing task and to the generating task based on their respective first weight and second weight. 10 . The storage system of claim 9 , wherein the CPU scheduler and the disk scheduler dynamically adjust the second weight to a variable value between a first value and a second value when the current utilization is between and including a first predetermined threshold and a second predetermined threshold, wherein the second predetermined threshold is greater than the first predetermined threshold. 11 . The storage system of claim 10 , wherein the CPU scheduler and the disk scheduler dynamically adjust the second weight to the first value when the current resource utilization in the storage system is less than the first predetermined threshold. 12 . The storage system of claim 10 , wherein the CPU scheduler and the disk scheduler dynamically adjust the second weight to the second value when the current resource utilization in the storage system is greater than the second predetermined threshold. 13 . The storage system of claim 10 , wherein the variable value grows linearly from the first value to the second value when the resource utilization is between the first predetermined threshold and the second predetermined threshold. 14 . The storage system of claim 10 , wherein the variable value grows exponentially from the first value to the second value when the resource utilization is between the first predetermined threshold and the second predetermined threshold. 15 . The storage system of claim 10 , wherein the variable value grows in a step function from the first value to the second value when the resource utilization is between the first predetermined threshold and the second predetermined threshold. 16 . A non-transitory computer-readable storage medium storing a computer program for allocating CPU (central processing unit) cycles and disk IOs of a storage system, the computer-readable storage medium comprising: program instructions for assigning a first weight to a processing task that increases resource utilization of a resource for processing incoming input/output (TO) requests; program instructions for assigning a second weight to a generating task that decreases the resource utilization of the resource; program instructions for dynamically adjusting the second weight within a range of values including and ranging from a first value to a second value based on a current resource utilization in the storage system, wherein the second value is greater than the first value; and program instructions for allocating the CPU cycles and disk IOs to the processing task and to the generating task based on their respective first weight and second weight. 17 . The computer-readable storage medium of claim 16 , wherein the program instructions for dynamically adjusting the second weight further comprises: program instructions for adjusting the second weight to a variable value between a first value and a second value when the current utilization is between and including a first predetermined threshold and a second predetermined threshold, wherein the second predetermined threshold is greater than the first predetermined threshold. 18 . The computer-readable storage medium of claim 17 , further comprising: program instructions for adjusting the second weight to the first value when the current resource utilization in the storage system is less than the first predetermined threshold. 19 . The computer-readable storage medium of claim 17 , further comprising: program instructions for adjusting the second weight to the second value when the current resource utilization in the storage system is greater than the second predetermined threshold. 20 . The computer-readable storage medium of claim 17 , wherein the variable value grows non-linearly from the first value to the second value when the resource ut

Assignees

Inventors

Classifications

  • G06F9/5038Primary

    considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration (scheduling strategies G06F9/4881 and subgroups) · CPC title

  • Saving storage space on storage systems · CPC title

  • Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title

  • Command handling arrangements, e.g. command buffers, queues, command scheduling · CPC title

  • with request queuing · 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 US2017192823A1 cover?
Methods, systems, and computer programs are presented for allocating CPU cycles and disk Input/Output's (IOs) to resource-creating processes based on dynamic weights that change according to the current percentage of resource utilization in the storage device. One method includes operations for assigning a first weight to a processing task that increases resource utilization of a resource for p…
Who is the assignee on this patent?
Nimble Storage Inc
What technology area does this patent fall under?
Primary CPC classification G06F9/5038. Mapped technology areas include Physics.
When was this patent published?
Publication date Thu Jul 06 2017 00:00:00 GMT+0000 (Coordinated Universal Time) (A1). Legal status and post-grant events are not shown on this page.
What related patents are in patentsdb?
We list 1 related publication on this page (citations in our corpus or others sharing the same primary CPC).