IP Library Granted Patent US 8,984,172
Granted Patent B1
US 8,984,172 · App. 14/099,752 · Granted Mar 17, 2015

System, method and article of manufacture for monitoring, controlling and improving storage media system performance based on storage media device fill percentage

Inventors: Jesse D. Beeson (Johns Creek, GA); Jesse B. Yates (Atlanta, GA)
Assignee: Concurrent Ventures, LLC
G06F3/0659G06F3/061G06F3/067
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,984,172
App. No.
14/099,752
Granted
Mar 17, 2015
Kind
B1
Abstract

An apparent load is determined based on assigning weightings to commands based on various factors including, but not limited to, the limitations of the underlying storage media device(s), where the command queue fullness is viewed from that perspective rather than simply the number of commands outstanding in a storage media device. Also disclosed is the use of a positive bias and a negative bias to artificially influence the apparent load based on fill percentages of storage media devices.

Claims (77)

1. A storage system comprising:

a plurality of storage media devices comprising at least a first storage media device and a second storage media device;

at least one storage controller controlling said first and second storage media devices;

a queue storing a set of commands to be executed in said first or second storage media devices;

wherein said storage controller:

computes a first apparent load associated with said first storage media device as a function of said command, a first bias associated with execution of said set of commands in said first storage media device;

computes a second apparent load associated with said second storage media device as a function of said command, a second bias associated with execution of said set of commands in said second storage media device;

said first apparent load less than said second apparent load when said first bias and said second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device;

determines a first fill percentage of said first storage media device and a second fill percentage of said second storage media device, said first fill percentage greater than said second fill percentage;

negatively biases said first bias until said first apparent load is greater than said second apparent load; and

executes said set of commands in said second storage media device with lower fill percentage.

2. The storage system of claim 1 , wherein said storage system is part of a storage area network (SAN).

3. The storage system of claim 1 , wherein said storage system is part of a network attached storage (NAS).

4. The storage system of claim 1 , wherein said system further comprises a network interface, and wherein at least one command in said set of commands is received via said network interface over at least one network.

5. The storage system of claim 4 , wherein said at least one network is any of, or a combination of, the following: local area network (LAN) or wide area network (WAN).

6. The storage system of claim 1 , wherein apparent load of a given storage media device is computed as follows:

i

=

0

N

Bias

i

QueueCapacity

for N commands in said queue;

where QueueCapacity=maximum number of commands that said queue can hold and Bias=the desired artificial influence applied to each command.

7. A storage system comprising:

a plurality of storage media devices comprising at least a first storage media device and a second storage media device;

at least one storage controller controlling said first and second storage media devices;

a queue storing a set of commands to be executed in said first or second storage media devices;

wherein said storage controller:

computes a first apparent load associated with said first storage media device as a function of said command, a first bias associated with execution of said set of commands in said first storage media device;

computes a second apparent load associated with said second storage media device as a function of said command, a second bias associated with execution of said set of commands in said second storage media device;

said first apparent load less than said second apparent load when said first bias and said second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device;

determines a first fill percentage of said first storage media device and a second fill percentage of said second storage media device, said first fill percentage greater than said second fill percentage;

positively biases said second bias until said first apparent load is greater than said second apparent load; and

executes said set of commands in said second storage media device with lower fill percentage.

8. The storage system of claim 7 , wherein said storage system is part of a storage area network (SAN).

9. The storage system of claim 7 , wherein said storage system is part of a network attached storage (NAS).

10. The storage system of claim 7 , wherein said system further comprises a network interface, and wherein at least one command in said set of commands is received via said network interface over at least one network.

11. The storage system of claim 10 , wherein said at least one network is any of, or a combination of, the following: local area network (LAN) or wide area network (WAN).

12. The storage system of claim 7 , wherein apparent load of a given storage media device is computed as follows:

i

=

0

N

Bias

i

QueueCapacity

for N commands in said queue;

where QueueCapacity=maximum number of commands that said queue can hold and Bias=the desired artificial influence applied to each command.

13. A method as implemented in a storage system comprising a plurality of storage media devices comprising at least a first storage media device and a second storage media device, at least one storage controller controlling said first and second storage media devices, a queue storing a set of commands to be executed in said first or second storage media devices, said method comprising:

computing a first apparent load associated with said first storage media device as a function of said command, a first bias associated with execution of said set of commands in said first storage media device;

computing a second apparent load associated with said second storage media device as a function of said command, a second bias associated with execution of said set of commands in said second storage media device;

said first apparent load less than said second apparent load when said first bias and said second bias are set to a neutral, unbiased value indicating potential execution of said set of commands in the first storage media device;

determining a first fill percentage of said first storage media device and a second fill percentage of said second storage media device, said first fill percentage greater than said second fill percentage;

negatively biasing said first bias until said first apparent load is greater than said second apparent load; and

executing said set of commands in said second storage media device with lower fill percentage.

14. The method of claim 13 , wherein said storage system is part of a storage area network (SAN).

15. The method of claim 13 , wherein said storage system is part of a network attached storage (NAS).

16. The method of claim 13 , wherein at least one command in said set of commands is received via a network interface over at least one network.

17. The method of claim 16 , wherein said at least one network is any of, or a combination of, the following: local area network (LAN) or wide area network (WAN).

18. The method of claim 7 , wherein apparent load of a given storage media device is computed as follows:

i

=

0

N

Bias

i

QueueCapacity

for N commands in said queue;

where QueueCapacity=maximum number of commands that said queue can hold and Bias=the desired artificial influence applied to each command.

Assignments (2)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Feb 3, 2021
From: CONCURRENT VENTURES, LLC
To: XTREAMEDGE, INC.
Reel/Frame 055136/0891 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 9, 2013
From: BEESON, JESSE D.; YATES, JESSE B.
To: CONCURRENT VENTURES, LLC
Reel/Frame 031741/0168 →