IP Library Granted Patent US 8,874,873
Granted Patent B2
US 8,874,873 · App. 13/361,302 · Granted Oct 28, 2014

Resources allocation in a computer storage system

Inventor: Haim Bitner (Raanana, IL)
Assignee: Infinidat Ltd.
G06F9/5016G06F3/0631
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 8,874,873
App. No.
13/361,302
Granted
Oct 28, 2014
Kind
B2
Abstract

The presently disclosed subject matter includes a method, system and apparatus, for dynamically controlling resource allocation in a storage system, the storage system comprises at least one storage device and at least one processing unit, the resources being associated with the processing unit. Responsive to a request from a connection for processing data, information in respect of an Allocation state of the processing unit is obtained. The Allocation state is defined as a Limiting Allocation state if the quantity of free resources associated with the processing unit, is lower than a first threshold value. In case the Allocation state of the processing unit is Limiting Allocation state, information in respect of a Connection state of the connection is obtained. The required memory resources are dynamically allocated to the connection according to the current Allocation state of the processing unit and the current Connection state of the connection.

Claims (57)

1. A method of controlling allocation of memory resources in a storage system, the storage system comprising at least one storage device and a processing unit, said memory resources being associated with said processing unit and operable to communicate with a plurality of connections, the method comprising:

receiving by the storage system a request from a connection for processing information related to said at least one storage device;

obtaining information in respect of an Allocation state of said processing unit, the allocation state being indicative of a quantity of currently allocated resources associated with said processing unit, wherein said Allocation state is defined as a Limiting Allocation state if the quantity of currently allocated resources associated with said processing unit is greater than a first threshold value;

in case the Allocation state of said processing unit is Limiting Allocation state, obtaining information in respect of a Connection state of the connection, wherein said Connection state is defined as a Limiting Connection state if a quantity of resources currently allocated to the connection is greater than a second threshold value; and

dynamically allocating to said connection, memory resources required for processing said information related to said at least one storage device, according to the Allocation state of said processing unit and the Connection state of said connection.

2. The method according to claim 1 further comprising:

in case the Connection state of said connection is defined as Limiting Connection state, allocating to said connection, the memory resources required for processing said information related to said at least one storage device, only if a number of un-serviced requests issued by said connection is equal to or greater than a predefined value.

3. The method according to claim 1 further comprising:

in case the Connection state of said connection is Normal Connection state, allocating to said connection, the memory resources required for processing said information related to said at least one storage device; wherein said Connection state is defined as Normal Connection state if the quantity of resources currently allocated to the connection is less than said second threshold value.

4. The method according to claim 1 further comprising:

defining the Connection state of said Connection, wherein the defining of the connection state of said connection comprises:

in case the quantity of currently allocated resources associated with said processing unit is less than a Limiting Threshold value and if a Resource Count value of the Connection is less than a predefined value, determining the Connection state of said connection as Normal Connection state; wherein said Resource Count value is indicative of a quantity of resources currently allocated to the connection and said predefined value represents a maximal quantity of resources that are allowed to be allocated to said connection;

otherwise, determining the Connection state of said connection as Limiting Connection state.

5. The method according to claim 1 further comprising:

defining the Connection state of said connection including:

in case the quantity of currently allocated resources associated with said processing unit is less than a Limiting threshold value and greater than a Selective Limiting threshold value, setting the Connection state of any connection defined as Newly Active, to Limiting Connection state,

wherein Newly Active connections are connections which became active during a period of time, during which a predefined number of requests have been issued to the processing unit.

6. The method according to claim 1 wherein in case the Allocation state of said processing unit is Normal Allocation state, the method further comprising decrementing said first threshold, wherein the Allocation state is defined as Normal Allocation state if the quantity of free resources associated with said processing unit, is greater than said first threshold value.

7. The method according to claim 1 wherein, in case the Allocation state of said processing unit is Normal Allocation state, the method further comprising decrementing said first threshold value.

8. The method according to claim 7 wherein said decrementing is done by a predefined Margin Decrement value.

9. The method according to claim 1 wherein in case the Allocation state of said processing unit is Limiting Allocation state, the method further comprising incrementing said first threshold value.

10. The method according to claim 9 wherein said incrementing comprises:

counting the number of connections currently associated with said processing unit, which are in Active state and incrementing said first threshold by a predefined Margin Increment value for each connection that is in Active state; and

counting the number of connections currently associated with said processing unit, which are defined as Newly Active connections and incrementing said first threshold by said Margin Increment value for multiplied by a another value which is equal to the number of Newly Active connections plus 1.

11. A storage system comprising:

a physical storage space including at least one storage device and a control layer operatively connectable to said physical storage space and to a plurality of connections; said control layer comprising processing unit being associated with memory resources and operable to utilize said memory resources for processing information in response to a request issued by a connection from among said plurality of connections, said control layer being operable to:

responsive to a request from a connection for processing information related to said at least one storage device, received by said storage system,

obtain information in respect of an Allocation state of said processing unit, the allocation state being indicative of a quantity of currently allocated resources associated with said processing unit, wherein said Allocation state is defined as a Limiting Allocation state if the quantity of currently allocated resources associated with said processing unit is greater than a first threshold value;

in case the Allocation state of said processing unit is Limiting Allocation state, obtain information in respect of a Connection state of the connection, wherein said Connection state is defined as a Limiting Connection state if a quantity of resources currently allocated to the connection is greater than a second threshold value; and

dynamically allocate to said connection, memory resources required for processing said information related to said at least one storage device, according to the current Allocation state of said processing unit and the current Connection state of said connection.

12. The storage system according to claim 11 wherein said control layer comprises or is otherwise associated with a data-repository operable for storing information related to the Allocation state of said processing unit.

13. The storage system according to claim 11 wherein said control layer is associated with a connection allocation data-repository operable for storing information related to Connection state of each one of said plurality of connections.

14. The storage system according to claim 11 wherein, in case the Connection state of said connection is defined as Limiting Connection state, said control layer is further operable to allocate to said connection, the memory resources required for processing said information related to said at least one storage device, only if a number of un-serviced requests issued by said connection is equal to or greater than a predefined value.

15. The storage system according to claim 11 wherein in case the Connection state of said connection is Normal Connection state, said control layer is further operable to allocate to said connection, the memory resources required for processing said information, related to said at least one storage device; wherein said Connection state is defined as Normal Connection state if the quantity of resources currently allocated to the connection is less than said second threshold value.

16. The storage system according to claim 11 wherein said control layer is further operable to define the Connection state of said Connection including:

in case the quantity of currently allocated resources associated with said processing unit is less than a Limiting Threshold value and if a Resource Count value of the Connection is less than a predefined value, determine the Connection state of said connection as Normal Connection state; wherein said Resource Count value is indicative the quantity of resources currently allocated to the connection and said predefined value represents a maximal quantity of resources that are allowed to be allocated to said connection;

otherwise, determine the Connection state of said connection as Limiting Connection state.

17. The storage system according to claim 11 wherein said control layer is further operable to define the Connection state of said Connection including:

in case the quantity of currently allocated resources associated with said processing unit is less than a Limiting threshold value and greater than a Selective Limiting threshold value, set the Connection state of any connection defined as a Newly Active, to Limiting Connection state,

wherein Newly Active connections are connections which became active during a period of time, during which a predefined number of requests have been issued to the processing unit.

18. The storage system according to claim 11 wherein in case the Allocation state of said processing unit is Normal Allocation state, said control layer is further operable to decrement said first threshold, wherein the Allocation state is defined as Normal Allocation state if the quantity of free resources associated with said processing unit, is greater than said first threshold value.

19. The storage system according to claim 11 wherein in case the Allocation state of said processing unit is Limiting Allocation state, said control layer is further operable to decrement said first threshold value.

20. The storage system according to claim 19 wherein said first threshold value is decremented by a predefined Margin Decrement value.

21. The storage system according to claim 11 wherein in case the Allocation state of said processing unit is Normal Allocation state, said control layer is further operable to increment said first threshold.

22. The storage system according to claim 19 wherein in order to increment said first threshold value said control layer is further operable to:

count the number of connections currently associated with said processing unit, which are in Active state and increment said first threshold by a predefined Margin-Increment value for each connection that is in Active state; and

count the number of connections currently associated with said processing unit, which are defined as Newly Active connections and increment said first threshold value by said Margin Increment value multiplied by a another value which is equal to the number of Newly Active connections plus 1.

23. A resource management unit that comprises hardware, and is operatively connectable to a processing unit in a storage system, the storage system comprising a physical storage space including at least one storage device and a control layer operatively connectable to said physical storage space and to a plurality of connections; said control layer comprises said processing unit being associated with memory resources and operable to utilize said memory resources for processing information in response to a request issued by a connection from among said plurality of connections, said resource management unit being operable to:

responsive to a request from a connection for processing information related to said at least one storage device, received by said storage system,

obtain information in respect of an Allocation state of said processing unit, the allocation state being indicative of quantity of a currently allocated resources, which are associated with said processing unit, wherein said Allocation state is defined as a Limiting Allocation state if the quantity of currently allocated resources associated with said processing unit, is greater than a first threshold value;

in case the Allocation state of said processing unit is Limiting Allocation state, obtain information in respect of a Connection state of the connection, wherein said Connection state is defined as a Limiting Connection state if the quantity of resources currently allocated to the connection is greater than a second threshold value; and

dynamically allocate to said connection, memory resources required for processing said information related to said at least one storage device, according to the current Allocation state of said processing unit and the current Connection state of said connection.

24. A non-transitory program storage device readable by machine, tangibly embodying a program of instructions executable by the machine to perform method steps of controlling allocation of memory resources in a storage system, the storage system comprising at least one storage device and a processing unit, said memory resources being associated with said processing unit and operable to communicate with a plurality of connections, the method comprising:

receiving by said storage system a request from a connection for processing information related to said at least one storage device;

obtaining information in respect of an Allocation state of said processing unit, the allocation state being indicative of quantity of a currently allocated resources, which are associated with said processing unit, wherein said Allocation state is defined as a Limiting Allocation state if the quantity of currently allocated resources associated with said processing unit, is greater than a first threshold value;

in case the Allocation state of said processing unit is Limiting Allocation state, obtaining information in respect of a Connection state of the connection, wherein said Connection state is defined as a Limiting Connection state if the quantity of resources currently allocated to the connection is greater than a second threshold value; and

dynamically allocating to said connection, memory resources required for processing said information related to said at least one storage device, according to the current Allocation state of said processing unit and the current Connection state of said connection.

Assignments (9)
SECURITY INTEREST Recorded Jan 30, 2025
From: INFINIDAT LTD
To: KREOS CAPITAL VII AGGREGATOR SCSP,
Reel/Frame 070056/0458 →
RELEASE OF SECURITY INTEREST IN IP RECORDED AT R/F 55653/0854 Recorded Jan 18, 2024
From: SILICON VALLEY BANK
To: INFINIDAT LTD.
Reel/Frame 066344/0064 →
SECURITY INTEREST Recorded Jan 10, 2024
From: INFINIDAT LTD
To: HSBC BANK PLC
Reel/Frame 066268/0584 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0526 →
RELEASE OF SECURITY INTEREST Recorded Mar 30, 2021
From: BANK LEUMI LE-ISRAEL B.M.
To: INFINIDAT LTD.
Reel/Frame 055776/0597 →
SECURITY INTEREST Recorded Mar 18, 2021
From: INFINIDAT LTD.
To: SILICON VALLEY BANK
Reel/Frame 055653/0854 →
SECURITY INTEREST Recorded Apr 12, 2018
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 045914/0276 →
LIEN Recorded Jul 18, 2016
From: INFINIDAT LTD.
To: BANK LEUMI LE-ISRAEL B.M.
Reel/Frame 039361/0161 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 11, 2012
From: BITNER, HAIM
To: INFINIDAT LTD.
Reel/Frame 028350/0895 →
Continuity (1)
Related Publication 20130198478A1 · Aug 1, 2013