Cross-device notifications
US-2015373089-A1 · Dec 24, 2015 · US
US2016119443A1 · US · A1
| Field | Value |
|---|---|
| Publication number | US-2016119443-A1 |
| Application number | US-201414521602-A |
| Country | US |
| Kind code | A1 |
| Filing date | Oct 23, 2014 |
| Priority date | Oct 23, 2014 |
| Publication date | Apr 28, 2016 |
| Grant date | — |
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.
A system and method for managing application performance includes a storage controller including a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of managing application performance and a processor coupled to the memory. The processor is configured to execute the machine executable code to receive storage requests from a plurality of first applications via a network interface, manage QoS settings for the storage controller and the first applications, and in response to receiving an accelerate command associated with a second application from the first applications, increase a first share of a storage resource allocated to the second application, decrease unlocked second shares of the storage resource of the first applications, and lock the first share. The storage resource is a request queue or a first cache. In some embodiments, the second application is a throughput application or a latency application.
Opening claim text (preview).
What is claimed is: 1 . A storage controller comprising: a memory containing machine readable medium comprising machine executable code having stored thereon instructions for performing a method of managing application performance; a processor coupled to the memory, the processor configured to execute the machine executable code to: receive storage requests from a plurality of first applications via a network interface; manage QoS settings for the storage controller and the first applications; and in response to receiving an accelerate command associated with a second application from the first applications, increase a first share of a storage resource allocated to the second application, decrease unlocked second shares of the storage resource of the first applications, and lock the first share, wherein the storage resource includes a request queue or a first cache. 2 . The storage controller of claim 1 , wherein in response to determining that values for the first share and the second shares are not previously set, the processor further determines, prior to increasing the first share or decreasing the unlocked second shares, initial values for the first and second shares of the storage resource based on current usage of the storage resource by the first applications. 3 . The storage controller of claim 1 , wherein in response to determining that the second application is classified as a throughput application, the storage resource is the request queue. 4 . The storage controller of claim 3 , wherein the processor further informs an I/O scheduler of the increased first share and the decreased unlocked second shares, the I/O scheduler managing the request queue. 5 . The storage controller of claim 1 , wherein in response to determining that the second application is classified as a latency application, the storage resource is the first cache and the first and second shares are shares of the first cache assigned to the second application. 6 . The storage controller of claim 5 , wherein the processor further informs a cache allocator of the increased first share and the decreased unlocked second shares, the cache allocator managing the first cache. 7 . The storage controller of claim 5 , wherein the processor further decreases a latency target for the second application. 8 . The storage controller of claim 7 , wherein in response to determining that the decreased latency target is below a threshold, the processor further: releases the first share of the first cache assigned to the second application; allocates a share of a second cache as the first share, the second cache being faster than the first cache; and decreases the unlocked second shares of the second cache associated with the first applications. 9 . The storage controller of claim 1 , wherein the amount the first share is increased is based on a percentage associated with the performance command. 10 . The storage controller of claim 1 , wherein a sum of the decreases in the second shares is equal to an amount the first share is increased. 11 . The storage controller of claim 1 , wherein each of the unlocked second shares is decreased an equal amount. 12 . The storage controller of claim 1 , wherein each of the unlocked second shares is decreased a prorated amount based on respective amounts of the unlocked second shares. 13 . The storage controller of claim 1 wherein in response to receiving a maintain command associated with a third application from the first applications, the processor locks a third share of the storage resource allocated to the third application. 14 . The storage controller of claim 1 , wherein in response to receiving a release command associated with a third application from the first applications, the processor unlocks a third share of the storage resource allocated to the third application. 15 . The storage controller of claim 14 , wherein in response to determining that the third share is a last share to be unlocked, the processor further releases the first, second, and third shares of the storage resource. 16 . A method comprising: receiving, by a quality of service (QoS) controller in a storage server, performance commands, each of the performance commands being associated with a respective application from a plurality of first applications using a storage system; in response to receiving a first one of the performance commands that is an accelerate command associated with a second application from the first applications: increasing a first share of a storage resource allocated to the second application, the storage resource comprising a request queue or a first cache; decreasing unlocked second shares of the storage resource of the first applications; and locking the first share. 17 . The method of claim 16 , further comprising: determining whether values for the first share and the second shares are previously set; and in response to determining that the values for the first share and the second shares are not previously set, determining, prior to increasing the first share or decreasing the unlocked second shares, initial values for the first and second shares of the storage resource based on current usage of the storage resource by the second applications. 18 . The method of claim 16 , further comprising in response to determining that the second application is classified as a throughput application: determining the request queue as the storage resource; and informing an I/O scheduler of the increased first share and the decreased unlocked second shares, the I/O scheduler managing the request queue. 19 . The method of claim 16 , further comprising in response to determining that the second application is classified as a latency application: determining the first cache as the storage resource; determining, as the first and second shares, respective shares of the first cache, the first cache being assigned to the second application; informing a cache allocator of the increased first share and the decreased unlocked second shares, the cache allocator managing the first cache; decreasing a latency target for the second application; and in response to determining that the decreased latency target is below a threshold: releasing the first share of the first cache assigned to the second application; allocating a share of a second cache as the first share, the second cache being faster than the first cache; and decreasing the unlocked second shares of the second cache associated with the second applications. 20 . A non-transitory machine-readable medium having stored thereon instructions for performing a method of managing application performance, comprising machine executable code which when executed by at least one machine, causes the machine to: receive performance commands, each of the performance commands being associated with a respective application from a plurality of first applications using a storage system; in response to receiving a first one of the performance commands that is an accelerate command associated with a second application from the first applications: increase a first amount of a request queue or a cache allocated to the second application; decrease unlocked second amounts of the request queue or cache of the first applications; and lock the first amount.
Architectures of resource allocation · CPC title
Threshold monitoring · CPC title
Electricity · mapped topic
Traffic characterised by specific attributes, e.g. priority or QoS · CPC title
for distributed storage of data in networks, e.g. transport arrangements for network file system [NFS], storage area networks [SAN] or network attached storage [NAS] · CPC title
Related publications grouped by family.
Answers are generated from the same data shown on this page.