Probabilistic lazy-forwarding technique without validation in a content centric network
US-2016044126-A1 · Feb 11, 2016 · US
US9600337B2 · US · B2
| Field | Value |
|---|---|
| Publication number | US-9600337-B2 |
| Application number | US-201514927868-A |
| Country | US |
| Kind code | B2 |
| Filing date | Oct 30, 2015 |
| Priority date | Sep 30, 2014 |
| Publication date | Mar 21, 2017 |
| Grant date | Mar 21, 2017 |
A practical reading order for non-experts. Skip the full description unless you need deep technical detail.
What the patent document calls the invention.
A short plain-language summary of the technical disclosure.
Who owns or filed the patent and who is credited as inventor.
Filing, priority, publication, and grant dates set the timeline.
The legal scope of protection — read this for what is actually claimed.
Technology tags used to group this patent with similar filings.
Prior art links and similar publications in this corpus.
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.
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 (IO) requests; assigning a second weight to a generating task that decreases the resource utilization of the resource; dynamically adjusting the second weight based on a current resource utilization in the storage system, wherein, when the current resource utilization in the storage system is less than a first predetermined threshold, the second weight has a first value; when the current resource utilization in the storage system is greater than a second predetermined threshold, which is greater than the first predetermined threshold, the second weight has a second value that is greater than the first value; and when the current resource utilization in the storage system is between the first predetermined threshold and the second predetermined threshold, the second weight has a variable value between the first value and the second value, wherein the variable value grows as the current resource utilization grows; 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 as recited in claim 1 , 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. 3. The method as recited in claim 1 , 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. 4. The method as recited in claim 1 , 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. 5. The method as recited in claim 1 , wherein the resource is non-volatile memory for storing the data of write IO requests, wherein the generating task increases an available amount of non-volatile memory by transferring data from the memory to permanent storage. 6. The method as recited in claim 1 , wherein the resource is disk space for storing the data and meta data of a write IO request, wherein the generating task performs garbage collection to increase an available amount of disk space. 7. The method as recited in claim 1 , wherein the resource is non-volatile memory for storing metadata for managing data of write IO requests, wherein the generating task increases an available amount of non-volatile memory for metadata by transferring data from the memory to permanent storage or by consolidating metadata information. 8. The method as recited in claim 1 , further including: throttling processing of the incoming IO requests when the current resource utilization is between the second predetermined threshold and a third predetermined threshold, the third predetermined threshold being greater than the second predetermined threshold. 9. The method as recited in claim 8 , further including: disabling processing of the incoming IO requests when the current resource utilization is greater than the third predetermined threshold. 10. The method as recited in claim 1 , further including: adding a new instance of the generating task when current resource utilization is greater than a fourth predetermined threshold. 11. A storage system comprising: a non-volatile memory (NVRAM) for storing incoming input/output (IO) requests; a hard drive (HDD) 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 input/output (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 weight to the generating task; wherein the CPU scheduler and the disk scheduler dynamically adjust the second weight based on a current resource utilization in the storage system, wherein, when the current resource utilization in the storage system is less than a first predetermined threshold, the second weight has a first value; when the current resource utilization in the storage system is greater than a second predetermined threshold, which is greater than the first predetermined threshold, the second weight has a second value that is greater than the first value; and when the current resource utilization in the storage system is between the first predetermined threshold and the second predetermined threshold, the second weight has a variable value between the first value and the second value, wherein the variable value grows as the current resource utilization grows; 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. 12. The storage system as recited in claim 11 , 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. 13. The storage system as recited in claim 11 , 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. 14. The storage system as recited in claim 11 , 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. 15. The storage system as recited in claim 11 , wherein the resource is the NVRAM, wherein the generating task increases an available amount of NVRAM by transferring data from the NVRAM to permanent storage. 16. The storage system as recited in claim 11 , wherein the resource is HDD space, wherein the generating task performs garbage collection to increase an available amount of HDD space. 17. The storage system as recited in claim 11 , wherein the storage array throttles processing of the incoming TO requests when the current resource utilization is between the second predetermined threshold and a third predetermined threshold, the third predetermined threshold being greater than the second predetermined threshold. 18. The storage system as recited in claim 17 , wherein the storage array disables processing of the incoming IO requests when the current resource utilization is greater than the third predetermined threshold. 19. 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 (IO) 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 based on a current resource utiliza
Distributed or networked storage systems, e.g. storage area networks [SAN], network attached storage [NAS] · CPC title
Saving storage space on storage systems · CPC title
by allocating resources to storage systems · CPC title
Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues · CPC title
Plurality of storage devices · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.