IP Library Granted Patent US 11,070,479
Granted Patent B2
US 11,070,479 · App. 16/689,386 · Granted Jul 20, 2021

Dynamic resource allocation based upon network flow control

Inventors: Craig Fulmer Everhart (Pittsburgh, PA); Vishwajith Shivappa (Milpitas, CA)
Assignee: NetApp, Inc.
H04L47/25G06F9/5011H04L67/1097
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 11,070,479
App. No.
16/689,386
Granted
Jul 20, 2021
Kind
B2
Abstract

One or more techniques and/or devices are provided for dynamic resource allocation based upon network flow control. For example, a first counter, corresponding to a count of communication availability signals provided by a network interface to a storage process, may be maintained. A second counter, corresponding to a count of communication unavailability signals provided by the network interface to the storage process, may be maintained. Responsive to the first counter exceeding a resource allocation threshold, additional resources may be dynamically allocated to the storage process during operation of the storage process. Responsive to the second counter exceeding a resource deallocation threshold, resources may be dynamically deallocated from the storage process during operation of the storage process. In this way, resources allocation for the storage process may be dynamically adjusted based upon real-time network flow control information indicative of whether the storage process is efficiently utilizing network communication channel availability.

Claims (47)

1. A method comprising:

identifying communication availability signals indicating that a network communication channel is available for transmitting data;

identifying communication unavailability signals indicating that the network communication channel is unavailable for transmitting data of data transmission requests; and

dynamically adjusting a resource allocation of computing resources based upon the communication availability signals and the communication unavailability signals, wherein the resource allocation is modified based upon a number of communication availability signals being less than a first threshold.

2. The method of claim 1 , comprising:

tracking the communication availability signals utilizing a first counter.

3. The method of claim 2 , comprising:

tracking the communication unavailability signals utilizing a second counter.

4. The method of claim 1 , comprising:

utilizing network flow control information for determining how to dynamically adjust the resource allocation.

5. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

increasing the resource allocation based upon the number of communication availability signals being less than the first threshold.

6. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

increasing the resource allocation based upon a number of communication unavailability signals being greater than a second threshold.

7. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

decreasing the resource allocation based upon the number of communication availability signals being greater than the first threshold.

8. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

decreasing the resource allocation based upon a number of communication unavailability signals being less than a second threshold.

9. The method of claim 1 , wherein the resource allocation corresponds to resources hosted within a cloud computing environment.

10. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

adjusting a resource allocation threshold used to determine how to dynamically adjust the resource allocation.

11. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

adjusting an amount of computing resources used to dynamically adjust the resource allocation.

12. The method of claim 1 , wherein the dynamically adjusting a resource allocation comprises:

performing smoothing and hysteresis for how the resource allocation is dynamically adjusted.

13. A non-transitory machine readable medium having stored thereon instructions, which when executed by a processor, causes the processor to:

identify communication availability signals indicating that a network communication channel is available for transmitting data;

identify communication unavailability signals indicating that the network communication channel is unavailable for transmitting data of data transmission requests; and

dynamically adjust a resource allocation of computing resources based upon the communication availability signals and the communication unavailability signals, wherein the resource allocation is modified based upon a number of communication unavailability signals being greater than a first threshold.

14. The non-transitory machine readable medium of claim 13 , wherein the instructions cause the processor to:

track the communication availability signals utilizing a first counter.

15. The non-transitory machine readable medium of claim 14 , wherein the instructions cause the processor to:

track the communication unavailability signals utilizing a second counter.

16. The non-transitory machine readable medium of claim 13 , wherein the instructions cause the processor to:

utilize network flow control information for determining how to dynamically adjust the resource allocation.

17. The non-transitory machine readable medium of claim 13 , wherein the instructions cause the processor to:

increase the resource allocation based upon a number of communication availability signals being less than a second threshold.

18. The non-transitory machine readable medium of claim 13 , wherein the instructions cause the processor to:

increase the resource allocation based upon the number of communication unavailability signals being greater than the first threshold.

19. The non-transitory machine readable medium of claim 13 , wherein the instructions cause the processor to:

perform smoothing and hysteresis for how the resource allocation is dynamically adjusted.

20. A computing device, comprising:

a memory having stored thereon instructions for performing a method;

a processor coupled to the memory, the processor configured to execute the instructions to cause the processor to:

identify communication availability signals indicating that a network communication channel is available for transmitting data;

identify communication unavailability signals indicating that the network communication channel is unavailable for transmitting data of data transmission requests; and

dynamically adjust a resource allocation of computing resources based upon the communication availability signals and the communication unavailability signals, wherein the resource allocation corresponds to resources hosted within a cloud computing environment.

Continuity (4)
Continuation 15848840 · Dec 20, 2017
Continuation 14842086 · Sep 1, 2015
Provisional Application 62199735 · Jul 31, 2015
Related Publication 20200092214A1 · Mar 19, 2020