IP Library Granted Patent US 11,277,355
Granted Patent B1
US 11,277,355 · App. 17/386,103 · Granted Mar 15, 2022

Adjustable resource management system

Inventors: Priyanka Nilay Thakore (Mountain View, CA); Lyle E. Adams (San Jose, CA); Chen Xiu (Beijing, CN)
H04L47/82
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,277,355
App. No.
17/386,103
Granted
Mar 15, 2022
Kind
B1
Abstract

A resource allocation request that includes a usage type identifier and requested amount of a resource is received where the usage type identifier is associated with a group identifier. Adjustable resource configuration information is accessed to obtain: (1) a maximum associated with the usage type identifier, (2) a minimum associated with the usage type identifier, and (3) a group limit associated with the group identifier. Resource state information is accessed and it is determined whether to grant the resource allocation request based at least in part on the maximum, the minimum, the group limit, and the resource state information. If so, the resource allocation request is granted. If not, the resource allocation request is denied.

Claims (59)

1. An adjustable resource management system, including:

a controller that is configured to:

receive a resource allocation request that includes a usage type identifier and requested amount of a resource, wherein the usage type identifier is associated with a group identifier;

access adjustable resource configuration information to obtain: (1) a maximum associated with the usage type identifier, (2) a minimum associated with the usage type identifier, and (3) a group limit associated with the group identifier;

access resource state information;

determine whether to grant the resource allocation request based at least in part on the maximum, the minimum, the group limit, and the resource state information;

in the event it is determined to grant the resource allocation request, grant the resource allocation request; and

in the event it is determined to not grant the resource allocation request, deny the resource allocation request; and

a memory that is configured to store the adjustable resource configuration information and the resource state information.

2. The adjustable resource management system recited in claim 1 , wherein the adjustable resource management system is implemented at least in part using one or more of the following:

an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a general-purpose integrated circuit.

3. The adjustable resource management system recited in claim 1 , wherein the resource includes one or more of the following: a hardware resource, a buffer in hardware, a RAID bin in hardware, a firmware resource, a front-end command in firmware, or a back-end command in firmware.

4. The adjustable resource management system recited in claim 1 , wherein:

the usage type identifier is associated with a first usage type; and

determining whether to grant the resource allocation request includes considering whether allocating the requested amount would prevent a second usage type, having the same group identifier as the first usage type, from being allocated a second minimum associated with the second usage type.

5. The adjustable resource management system recited in claim 1 , wherein the controller is further configured to:

receive a new value for the adjustable resource configuration information;

determine whether the new value would violate a related value in the adjustable resource configuration information; and

in the event it is determined that the new value would violate the related value, discard the new value without writing the new value to the adjustable resource configuration information.

6. The adjustable resource management system recited in claim 1 , wherein the controller is further configured to: update the adjustable resource configuration information with a new value, wherein the new value is associated with one or more of the following: a new resource, an updated version of the resource, a new usage type, or an updated version of an existing usage type.

7. The adjustable resource management system recited in claim 1 , wherein granting the resource allocation request includes storing a mapping between the usage type identifier and a resource identifier in the resource state information.

8. The adjustable resource management system recited in claim 1 , wherein the controller is further configured to: deallocate the requested amount of the resource in response to receiving a deallocation communication from the resource.

9. The adjustable resource management system recited in claim 1 , wherein the controller is further configured to:

deallocate the requested amount of the resource in response to receiving a deallocation communication from the resource; and

update an allocation count associated with the usage type identifier, including by accessing a mapping between a resource identifier and the usage type identifier that is stored in the resource state information.

10. The adjustable resource management system recited in claim 1 , wherein the controller is further configured to: after the resource allocation request is granted, update the maximum in the adjustable resource configuration information with a new maximum that is strictly less than the requested amount, wherein the requested amount of the resource continues to be granted even after the adjustable resource configuration information is updated with the new maximum.

11. The adjustable resource management system recited in claim 1 , wherein the controller is further configured to:

monitor a first allocated amount associated with a first usage type identifier and a second allocated amount associated with a second usage type identifier, wherein the first usage type identifier and the second usage type identifier are associated with a same group identifier;

determine whether the first allocated amount satisfies a low activity test and the second allocated amount satisfies a high activity test; and

in the event the low activity test and the high activity test are both satisfied:

reduce a first maximum setting associated with the first usage type identifier; and

increase a second maximum setting associated with the second usage type identifier.

12. A method, including:

receiving a resource allocation request that includes a usage type identifier and requested amount of a resource, wherein the usage type identifier is associated with a group identifier;

accessing adjustable resource configuration information to obtain: (1) a maximum associated with the usage type identifier, (2) a minimum associated with the usage type identifier, and (3) a group limit associated with the group identifier;

accessing resource state information;

determining whether to grant the resource allocation request based at least in part on the maximum, the minimum, the group limit, and the resource state information;

in the event it is determined to grant the resource allocation request, granting the resource allocation request; and

in the event it is determined to not grant the resource allocation request, denying the resource allocation request.

13. The method recited in claim 12 , wherein the method is performed at least in part using one or more of the following: an application-specific integrated circuit (ASIC), a field-programmable gate array (FPGA), or a general-purpose integrated circuit.

14. The method recited in claim 12 , wherein the resource includes one or more of the following: a hardware resource, a buffer in hardware, a RAID bin in hardware, a firmware resource, a front-end command in firmware, or a back-end command in firmware.

15. The method recited in claim 12 , wherein:

the usage type identifier is associated with a first usage type; and

determining whether to grant the resource allocation request includes considering whether allocating the requested amount would prevent a second usage type, having the same group identifier as the first usage type, from being allocated a second minimum associated with the second usage type.

16. The method recited in claim 12 , further including:

receiving a new value for the adjustable resource configuration information;

determining whether the new value would violate a related value in the adjustable resource configuration information; and

in the event it is determined that the new value would violate the related value, discarding the new value without writing the new value to the adjustable resource configuration information.

17. The method recited in claim 12 , wherein granting the resource allocation request includes storing a mapping between the usage type identifier and a resource identifier in the resource state information.

18. The method recited in claim 12 , further including:

deallocating the requested amount of the resource in response to receiving a deallocation communication from the resource; and

updating an allocation count associated with the usage type identifier, including by accessing a mapping between a resource identifier and the usage type identifier that is stored in the resource state information.

19. The method recited in claim 12 , further including: after the resource allocation request is granted, updating the maximum in the adjustable resource configuration information with a new maximum that is strictly less than the requested amount, wherein the requested amount of the resource continues to be granted even after the adjustable resource configuration information is updated with the new maximum.

20. The method recited in claim 12 , further including:

monitoring a first allocated amount associated with a first usage type identifier and a second allocated amount associated with a second usage type identifier, wherein the first usage type identifier and the second usage type identifier are associated with a same group identifier;

determining whether the first allocated amount satisfies a low activity test and the second allocated amount satisfies a high activity test; and

in the event the low activity test and the high activity test are both satisfied:

reducing a first maximum setting associated with the first usage type identifier; and

increasing a second maximum setting associated with the second usage type identifier.

Assignments (2)
CHANGE OF NAME Recorded Aug 13, 2025
From: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
To: NANJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 072008/0631 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 20, 2021
From: THAKORE, PRIYANKA NILAY; ADAMS, LYLE E.; XIU, CHEN
To: BEIJING TENAFE ELECTRONIC TECHNOLOGY CO., LTD.
Reel/Frame 057850/0263 →