IP Library Granted Patent US 7,092,977
Granted Patent B2
US 7,092,977 · App. 10/232,875 · Granted Aug 15, 2006

Techniques for storing data based upon storage policies

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 7,092,977
App. No.
10/232,875
Granted
Aug 15, 2006
Kind
B2
Abstract

Automated techniques for storing data in a data storage environment. Techniques are provided for determining storage locations for data in a heterogeneous storage environment based upon storage policies configured for the storage environment. The data is stored in storage locations that enable efficient data access while optimizing the use of available storage resources with minimum human intervention.

Claims (217)

1. In a storage environment comprising a plurality of storage devices, a method of identifying a storage device from the plurality of storage devices for storing data, the method comprising:

receiving a signal to store a data unit;

identifying a set of one or more placement rules configured for the storage environment, each placement rule identifying criteria to be used for selecting a storage device for storing data, the criteria comprising data-related criteria and device-related criteria, the data-related criteria identifying one or more conditions related to one or more characteristics of the data to be stored and the device-related criteria identifying one or more conditions related to one or more storage device characteristics;

calculating a data value score (DVS) for each placement rule in the set of placement rules based upon the data-related criteria of the placement rule and characteristics of the data unit to be stored, wherein the DVSs calculated for the set of placements rules are used to select a placement rule from the set of placement rules to be used for determining a storage device for storing the data unit; and

determining a storage device, from the plurality of storage devices, for storing the data unit based upon the set of placement rules and their associated DVSs, characteristics of the plurality of storage devices, and characteristics of the data unit to be stored.

2. The method of claim 1 wherein the DVS for a placement rule provides a measure of a degree of matching between the one or more conditions specified in the data-related criteria of the placement rule and the characteristics of the data unit to be stored.

3. The method of claim 1 wherein:

the data-related criteria for a placement rule comprises:

usage criteria comprising one or more conditions related to access information associated with a data unit; and

unit selection criteria comprising one or more conditions related to characteristics of a data unit; and

calculating a data value score (DVS) for each placement rule in the set of placement rules comprises:

generating a usage score for the placement rule based upon the usage criteria for the placement rule and access information associated with the data unit to be stored;

generating a unit selection score for the placement rule based upon the unit selection criteria for the placement rule and characteristics of the data unit to be stored; and

generating the DVS for the placement rule based upon the usage score and the unit selection score.

4. The method of claim 1 wherein determining the storage device from the plurality of storage devices for storing the data unit comprises:

selecting a first placement rule from the set of placement rules based upon the DVSs associated with the set of placement rules;

calculating a relative storage value score (RSVS) for each storage device in the plurality of storage devices based upon the device-related criteria of the first placement rule, the characteristics of the data unit, and characteristics of the storage device; and

selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices.

5. The method of claim 4 wherein the RSVS for a storage device is directly proportional to the bandwidth supported by the storage device, directly proportional to the extent to which the storage device can store data without exceeding a threshold capacity, and inversely proportional to cost of storing data on the storage device.

6. The method of claim 5 wherein the RSVS for a storage device is directly proportional to availability of the storage device.

7. The method of claim 5 wherein selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices comprises:

selecting, from the plurality of storage devices, a storage device having the highest RSVS value.

8. The method of claim 4 wherein the RSVS calculated for a storage device indicates whether the storage device can support a device bandwidth value specified in the device-related criteria of the first placement rule.

9. The method of claim 4 wherein the RSVS calculated for a storage device indicates whether the storage device can store the data unit without exceeding a capacity threshold associated with the storage device.

10. The method of claim 4 wherein selecting the first placement rule comprises selecting a placement rule with the highest DVS as the first placement rule.

11. The method of claim 10 wherein selecting a placement rule with the highest DVS comprises:

if the highest DVS is associated with multiple placement rules, using tie-breaking rules to select a placement rule from the multiple placement rules as the first placement rule.

12. The method of claim 1 wherein determining the storage device for storing the data unit comprises:

based upon DVSs calculated for the set of placement rules, selecting a first placement rule from the plurality of placement rules;

identifying a first set of storage devices from the plurality of storage devices based upon the device-related criteria of the first placement rule;

generating, for each storage device in the first set of storage devices, a relative storage value score (RSVS) based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device; and

selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices.

13. The method of claim 12 wherein:

the RSVS for a storage device is calculated based upon

bandwidth supported by the storage device,

device bandwidth value specified in the device-related criteria of the first placement rule;

desired threshold capacity configured for the storage device, the desired threshold capacity indicating a portion of total capacity of the device allocated for storing the data unit, and

current usage information for the storage device, the current usage information indicates a portion of the storage device that is being used for storing data of a particular type, and

cost of storing data on the storage device; and

generating a RSVS for each storage device in the first set of storage devices comprises:

generating a RSVS having a value of zero if the storage device is not capable of satisfying the bandwidth requirements specified by the first placement rule;

generating a RSVS having a value greater than zero if the storage device is capable of satisfying the bandwidth requirements specified by the first placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device; and

generating a RSVS having a value less than zero if the storage device is capable of satisfying the bandwidth requirements specified by the first placement rule and cannot store the data unit without exceeding a capacity threshold associated with the storage device.

14. The method of claim 13 wherein selecting a storage device from the first set for storing the data unit comprises selecting a device with the highest RSVS.

15. The method of claim 1 wherein:

the DVS for a placement rule indicates a degree of relevancy of the placement rule to the data unit to be stored; and

determining a storage device from the plurality of storage devices for storing the data unit comprises:

(a) selecting a placement rule having a DVS indicating the highest degree of relevancy;

(b) identifying a first set of storage devices from the plurality of devices based upon the selected placement rule;

(c) generating a relative storage value score (RSVS) for each storage device in the first set of storage devices based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device, the RSVS for a storage device indicating whether the storage device can satisfy bandwidth requirements specified by the selected placement rule and indicating if the storage device can store the data unit without exceeding a capacity threshold associated with the storage device;

(d) determining if at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(e) if it is determined that at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting, based upon RSVSs generated for the storage devices, a storage device that is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(f) if no storage device in the first set of devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting another placement rule from the set of placement rules that has a DVS indicating the next highest degree of relevancy; and

(g) iterating step (b) through (f) until a storage device is identified for storing the data unit that is capable of satisfying the bandwidth requirements specified by the first placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device.

16. The method of claim 1 wherein:

the DVS for a placement rule indicates a degree of relevancy of the placement rule to the data unit to be stored; and

determining a storage device from the plurality of storage devices for storing the data unit comprises:

(a) selecting a placement rule having a DVS indicating the highest degree of relevancy;

(b) identifying a first set of storage devices from the plurality of devices based upon the selected placement rule;

(c) generating a relative storage value score (RSVS) for each storage device in the first set of storage devices based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device, the RSVS for a storage device indicating a degree of desirability of storing the data unit on the storage device, the RSVS for a storage device indicating whether the storage device can satisfy bandwidth requirements specified by the selected placement rule and indicating if the storage device can store the data unit without exceeding a capacity threshold associated with the storage device;

(d) determining if at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(e) if it is determined that at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting, based upon RSVSs generated for the storage devices, a storage device that is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(f) if no storage device in the first set of devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device:

determining a first storage device from the first set of storage devices that can store the storage unit and is more desirable for storing the data unit than other devices in the first set of storage devices as indicated by the RSVSs generated for the devices;

determining if a storage device has been identified as a candidate device;

if a storage device has been marked as a candidate device:

if the first storage device is more desirable for storing the data unit than the marked candidate device as indicated by the RSVSs associated with the first device and the marked candidate device, marking the first storage device as the candidate device; and

selecting another placement rule from the set of placement rules that has a DVS indicating the next highest degree of relevancy; and

(g) iterating steps (b) through (f) until a storage device is identified for storing the data unit or until all the placement rules in the set of placement rules have been processed; and

(h) if all the placement rules in the set of placement rules have been processed and a storage device has not been identified for storing the data unit, selecting the storage device marked as the candidate device for storing the data unit.

17. In a storage environment comprising a plurality of storage devices, a data processing system for identifying a storage device from the plurality of storage devices for storing data, the data processing system comprising:

a processor;

a memory coupled to the processor, the memory configured to store a plurality of code modules for execution by the processor, the plurality of code modules comprising:

a code module for receiving a signal to store a data unit;

a code module for identifying a set of one or more placement rules configured for the storage environment, each placement rule identifying criteria to be used for selecting a storage device for storing data, the criteria comprising data-related criteria and device-related criteria, the data-related criteria identifying one or more conditions related to one or more characteristics of the data to be stored and the device-related criteria identifying one or more conditions related to one or more storage device characteristics;

a code module for calculating a data value score (DVS) for each placement rule in the set of placement rules based upon the data-related criteria of the placement rule and characteristics of the data unit to be stored, wherein the DVSs calculated for the set of placements rules are used to select a placement rule from the set of placement rules to be used for determining a storage device for storing the data unit; and

a code module for determining a storage device, from the plurality of storage devices, for storing the data unit based upon the set of placement rules and their associated DVSs, characteristics of the plurality of storage devices, and characteristics of the data unit to be stored.

18. The system of claim 17 wherein the DVS for a placement rule provides a measure of a degree of matching between the one or more conditions specified in the data-related criteria of the placement and the characteristics of the data unit to be stored.

19. The system of claim 17 wherein:

the data-related criteria for a placement rule comprises:

usage criteria comprising one or more conditions related to access information associated with a data unit; and

unit selection criteria comprising one or more conditions related to characteristics of a data unit; and

the code module for calculating a data value score (DVS) for each placement rule in the set of placement rules comprises:

a code module for generating a usage score for the placement rule based upon the usage criteria for the placement rule and access information associated with the data unit to be stored;

a code module for generating a unit selection score for the placement rule based upon the unit selection criteria for the placement rule and characteristics of the data unit to be stored; and

a code module for generating the DVS for the placement rule based upon the usage score and the unit selection score.

20. The system of claim 17 wherein the code module for determining the storage device from the plurality of storage devices for storing the data unit comprises:

a code module for selecting a first placement rule from the set of placement rules based upon the DVSs associated with the set of placement rules;

a code module for calculating a relative storage value score (RSVS) for each storage device in the plurality of storage devices based upon the device-related criteria of the first placement rule, the characteristics of the data unit, and characteristics of the storage device; and

a code module for selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices.

21. The system of claim 20 wherein the RSVS for a storage device is directly proportional to the bandwidth supported by the storage device, directly proportional to the extent to which the storage device can store data without exceeding a threshold capacity, and inversely proportional to cost of storing data on the storage device.

22. The system of claim 21 wherein the RSVS for a storage device is directly proportional to availability of the storage device.

23. The system of claim 21 wherein the code module for selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices comprises:

a code module for selecting, from the plurality of storage devices, a storage device having the highest RSVS value.

24. The system of claim 20 wherein the RSVS calculated for a storage device indicates whether the storage device can support a device bandwidth value specified in the device-related criteria of the first placement rule.

25. The system of claim 20 wherein the RSVS calculated for a storage device indicates whether the storage device can store the data unit without exceeding a capacity threshold associated with the storage device.

26. The system of claim 20 wherein the code module for selecting the first placement rule comprises a code module for selecting a placement rule with the highest DVS as the first placement rule.

27. The system of claim 26 wherein the code module for selecting a placement rule with the highest DVS comprises:

if the highest DVS is associated with multiple placement rules, a code module for using tie-breaking rules to select a placement rule from the multiple placement rules as the first placement rule.

28. The system of claim 17 wherein the code module for determining the storage device for storing the data unit comprises:

a code module for, based upon DVSs calculated for the set of placement rules, selecting a first placement rule from the plurality of placement rules;

a code module for identifying a first set of storage devices from the plurality of storage devices based upon the device-related criteria of the first placement rule;

a code module for generating, for each storage device in the first set of storage devices, a relative storage value score (RSVS) based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device; and

a code module for selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices.

29. The system of claim 28 wherein:

the RSVS for a storage device is calculated based upon

bandwidth supported by the storage device,

device bandwidth value specified in the device-related criteria of the first placement rule;

desired threshold capacity configured for the storage device, the desired threshold capacity indicating a portion of total capacity of the device allocated for storing the data unit, and

current usage information for the storage device, the current usage information indicates a portion of the storage device that is being used for storing data of a particular type, and

cost of storing data on the storage device; and

the code module for generating a RSVS for each storage device in the first set of storage devices comprises:

a code module for generating a RSVS having a value of zero if the storage device is not capable of satisfying the bandwidth requirements specified by the first placement rule;

a code module for generating a RSVS having a value greater than zero if the storage device is capable of satisfying the bandwidth requirements specified by the first placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device; and

a code module for generating a RSVS having a value less than zero if the storage device is capable of satisfying the bandwidth requirements specified by the first placement rule and cannot store the data unit without exceeding a capacity threshold associated with the storage device.

30. The system of claim 29 wherein the code module for selecting a storage device from the first set for storing the data unit comprises a code module for selecting a device with the highest RSVS.

31. The system of claim 17 wherein:

the DVS for a placement rule indicates a degree of relevancy of the placement rule to the data unit to be stored; and

the code module for determining a storage device from the plurality of storage devices for storing the data unit comprises a code module for:

(a) selecting a placement rule having a DVS indicating the highest degree of relevancy;

(b) identifying a first set of storage devices from the plurality of devices based upon the selected placement rule;

(c) generating a relative storage value score (RSVS) for each storage device in the first set of storage devices based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device, the RSVS for a storage device indicating whether the storage device can satisfy bandwidth requirements specified by the selected placement rule and indicating if the storage device can store the data unit without exceeding a capacity threshold associated with the storage device;

(d) determining if at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(e) if it is determined that at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting, based upon RSVSs generated for the storage devices, a storage device that is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(f) if no storage device in the first set of devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting another placement rule from the set of placement rules that has a DVS indicating the next highest degree of relevancy; and

(g) iterating step (b) through (f) until a storage device is identified for storing the data unit that is capable of satisfying the bandwidth requirements specified by the first placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device.

32. The system of claim 17 wherein:

the DVS for a placement rule indicates a degree of relevancy of the placement rule to the data unit to be stored; and

the code module for determining a storage device from the plurality of storage devices for storing the data unit comprises a code module for:

(a) selecting a placement rule having a DVS indicating the highest degree of relevancy;

(b) identifying a first set of storage devices from the plurality of devices based upon the selected placement rule;

(c) generating a relative storage value score (RSVS) for each storage device in the first set of storage devices based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device, the RSVS for a storage device indicating a degree of desirability of storing the data unit on the storage device, the RSVS for a storage device indicating whether the storage device can satisfy bandwidth requirements specified by the selected placement rule and indicating if the storage device can store the data unit without exceeding a capacity threshold associated with the storage device;

(d) determining if at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(e) if it is determined that at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting, based upon RSVSs generated for the storage devices, a storage device that is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(f) if no storage device in the first set of devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device:

determining a first storage device from the first set of storage devices that can store the storage unit and is more desirable for storing the data unit than other devices in the first set of storage devices as indicated by the RSVSs generated for the devices;

determining if a storage device has been identified as a candidate device;

if a storage device has been marked as a candidate device:

if the first storage device is more desirable for storing the data unit than the marked candidate device as indicated by the RSVSs associated with the first device and the marked candidate device, marking the first storage device as the candidate device; and

selecting another placement rule from the set of placement rules that has a DVS indicating the next highest degree of relevancy; and

(g) iterating steps (b) through (f) until a storage device is identified for storing the data unit or until all the placement rules in the set of placement rules have been processed; and

(h) if all the placement rules in the set of placement rules have been processed and a storage device has not been identified for storing the data unit, selecting the storage device marked as the candidate device for storing the data unit.

33. A computer program product stored on a computer-readable storage medium for identifying a storage device for storing data in a storage environment comprising a plurality of storage devices, the computer program product comprising:

code for receiving a signal to store a data unit;

code for identifying a set of one or more placement rules configured for the storage environment, each placement rule identifying criteria to be used for selecting a storage device for storing data, the criteria comprising data-related criteria and device-related criteria, the data-related criteria identifying one or more conditions related to one or more characteristics of the data to be stored and the device-related criteria identifying one or more conditions related to one or more storage device characteristics;

code for calculating a data value score (DVS) for each placement rule in the set of placement rules based upon the data-related criteria of the placement rule and characteristics of the data unit to be stored, wherein the DVSs calculated for the set of placements rules are used to select a placement rule from the set of placement rules to be used for determining a storage device for storing the data unit; and

code for determining a storage device, from the plurality of storage devices, for storing the data unit based upon the set of placement rules and their associated DVSs, characteristics of the plurality of storage devices, and characteristics of the data unit to be stored.

34. The computer program product of claim 33 wherein the DVS for a placement rule provides a measure of a degree of matching between the one or more conditions specified in the data-related criteria of the placement rule and the characteristics of the data unit to be stored.

35. The computer program product of claim 33 wherein:

the data-related criteria for a placement rule comprises:

usage criteria comprising one or more conditions related to access information associated with a data unit; and

unit selection criteria comprising one or more conditions related to characteristics of a data unit; and

the code for calculating a data value score (DVS) for each placement rule in the set of placement rules comprises:

code for generating a usage score for the placement rule based upon the usage criteria for the placement rule and access information associated with the data unit to be stored;

code for generating a unit selection score for the placement rule based upon the unit selection criteria for the placement rule and characteristics of the data unit to be stored; and

code for generating the DVS for the placement rule based upon the usage score and the unit selection score.

36. The computer program product of claim 33 wherein the code for determining the storage device from the plurality of storage devices for storing the data unit comprises:

code for selecting a first placement rule from the set of placement rules based upon the DVSs associated with the set of placement rules;

code for calculating a relative storage value score (RSVS) for each storage device in the plurality of storage devices based upon the device-related criteria of the first placement rule, the characteristics of the data unit, and characteristics of the storage device; and

code for selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices.

37. The computer program product of claim 36 wherein the RSVS for a storage device is directly proportional to the bandwidth supported by the storage device, directly proportional to the extent to which the storage device can store data without exceeding a threshold capacity, and inversely proportional to cost of storing data on the storage device.

38. The computer program product of claim 37 wherein the RSVS for a storage device is directly proportional to availability of the storage device.

39. The computer program product of claim 37 wherein the code for selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices comprises:

code for selecting, from the plurality of storage devices, a storage device having the highest RSVS value.

40. The computer program product of claim 36 wherein the RSVS calculated for a storage device indicates whether the storage device can support a device bandwidth value specified in the device-related criteria of the first placement rule.

41. The computer program product of claim 36 wherein the RSVS calculated for a storage device indicates whether the storage device can store the data unit without exceeding a capacity threshold associated with the storage device.

42. The computer program product of claim 36 wherein the code for selecting the first placement rule comprises code for selecting a placement rule with the highest DVS as the first placement rule.

43. The computer program product of claim 42 wherein the code for selecting a placement rule with the highest DVS comprises:

if the highest DVS is associated with multiple placement rules, code for using tie-breaking rules to select a placement rule from the multiple placement rules as the first placement rule.

44. The computer program product of claim 33 wherein the code for determining the storage device for storing the data unit comprises:

code for selecting, based upon DVSs calculated for the set of placement rules, a first placement rule from the plurality of placement rules;

code for identifying a first set of storage devices from the plurality of storage devices based upon the device-related criteria of the first placement rule;

code for generating, for each storage device in the first set of storage devices, a relative storage value score (RSVS) based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device; and

code for selecting a storage device from the plurality of storage devices for storing the data unit based upon the RSVSs calculated for the plurality of storage devices.

45. The computer program product of claim 44 wherein:

the RSVS for a storage device is calculated based upon

bandwidth supported by the storage device,

device bandwidth value specified in the device-related criteria of the first placement rule;

desired threshold capacity configured for the storage device, the desired threshold capacity indicating a portion of total capacity of the device allocated for storing the data unit, and

current usage information for the storage device, the current usage information indicates a portion of the storage device that is being used for storing data of a particular type, and

cost of storing data on the storage device; and

the code for generating a RSVS for each storage device in the first set of storage devices comprises:

code for generating a RSVS having a value of zero if the storage device is not capable of satisfying the bandwidth requirements specified by the first placement rule;

code for generating a RSVS having a value greater than zero if the storage device is capable of satisfying the bandwidth requirements specified by the first placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device; and

code for generating a RSVS having a value less than zero if the storage device is capable of satisfying the bandwidth requirements specified by the first placement rule and cannot store the data unit without exceeding a capacity threshold associated with the storage device.

46. The computer program product of claim 45 wherein the code for selecting a storage device from the first set for storing the data unit comprises code for selecting a storage device with the highest RSVS.

47. The computer program product of claim 33 wherein:

the DVS for a placement rule indicates a degree of relevancy of the placement rule to the data unit to be stored; and

the code for determining a storage device from the plurality of storage devices for storing the data unit comprises code for:

(a) selecting a placement rule having a DVS indicating the highest degree of relevancy;

(b) identifying a first set of storage devices from the plurality of devices based upon the selected placement rule;

(c) generating a relative storage value score (RSVS) for each storage device in the first set of storage devices based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device, the RSVS for a storage device indicating whether the storage device can satisfy bandwidth requirements specified by the selected placement rule and indicating if the storage device can store the data unit without exceeding a capacity threshold associated with the storage device;

(d) determining if at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(e) if it is determined that at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting, based upon RSVSs generated for the storage devices, a storage device that is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(f) if no storage device in the first set of devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and has can store the data unit without exceeding a capacity threshold associated with the storage device, selecting another placement rule from the set of placement rules that has a DVS indicating the next highest degree of relevancy; and

(g) iterating step (b) through (f) until a storage device is identified for storing the data unit that is capable of satisfying the bandwidth requirements specified by the first placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device.

48. The computer program product of claim 33 wherein:

the DVS for a placement rule indicates a degree of relevancy of the placement rule to the data unit to be stored; and

the code for determining a storage device from the plurality of storage devices for storing the data unit comprises code for:

(a) selecting a placement rule having a DVS indicating the highest degree of relevancy;

(b) identifying a first set of storage devices from the plurality of devices based upon the selected placement rule;

(c) generating a relative storage value score (RSVS) for each storage device in the first set of storage devices based upon the device-related criteria of the first placement rule, characteristics of the data unit, and characteristics of the storage device, the RSVS for a storage device indicating a degree of desirability of storing the data unit on the storage device, the RSVS for a storage device indicating whether the storage device can satisfy bandwidth requirements specified by the selected placement rule and indicating if the storage device can store the data unit without exceeding a capacity threshold associated with the storage device;

(d) determining if at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(e) if it is determined that at least one storage device in the first set of storage devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device, selecting, based upon RSVSs generated for the storage devices, a storage device that is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device;

(f) if no storage device in the first set of devices is capable of satisfying the bandwidth requirements specified by the selected placement rule and can store the data unit without exceeding a capacity threshold associated with the storage device:

determining a first storage device from the first set of storage devices that can store the storage unit and is more desirable for storing the data unit than other devices in the first set of storage devices as indicated by the RSVSs generated for the devices;

determining if a storage device has been identified as a candidate device;

if a storage device has been marked as a candidate device:

if the first storage device is more desirable for storing the data unit than the marked candidate device as indicated by the RSVSs associated with the first device and the marked candidate device, marking the first storage device as the candidate device; and

selecting another placement rule from the set of placement rules that has a DVS indicating the next highest degree of relevancy; and

(g) iterating steps (b) through (f) until a storage device is identified for storing the data unit or until all the placement rules in the set of placement rules have been processed; and

(h) if all the placement rules in the set of placement rules have been processed and a storage device has not been identified for storing the data unit, selecting the storage device marked as the candidate device for storing the data unit.

49. In a storage environment comprising a plurality of storage devices, a system for identifying a storage device from the plurality of storage devices for storing data, the system comprising:

means for receiving a signal to store a data unit;

means for identifying a set of one or more placement rules configured for the storage environment, each placement rule identifying criteria to be used for selecting a storage device for storing data, the criteria comprising data-related criteria and device-related criteria, the data-related criteria identifying one or more conditions related to one or more characteristics of the data to be stored and the device-related criteria identifying one or more conditions related to one or more storage device characteristics;

means for calculating a data value score (DVS) for each placement rule in the set of placement rules based upon the data-related criteria of the placement rule and characteristics of the data unit to be stored, wherein the DVSs calculated for the set of placements rules are used to select a placement rule from the set of placement rules to be used for determining a storage device for storing the data unit; and

means for determining a storage device, from the plurality of storage devices, for storing the data unit based upon the set of placement rules and their associated DVSs, characteristics of the plurality of storage devices, and characteristics of the data unit to be stored.

Assignments (15)
PATENT SECURITY AGREEMENT (NOTES) Recorded May 2, 2024
From: ROCKET SOFTWARE, INC.
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS NOTES COLLATERAL AGENT
Reel/Frame 067292/0099 →
RELEASE OF SECURITY INTEREST IN PATENTS (SECOND LIEN) RECORDED AT REEL/FRAME NO.: 050339/0839 Recorded Feb 2, 2021
From: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
To: ROCKET SOFTWARE, INC.
Reel/Frame 055206/0148 →
SECOND LIEN SECURITY AGREEMENT Recorded Apr 30, 2019
From: ROCKET SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 050339/0839 →
FIRST LIEN SECURITY AGREEMENT Recorded Apr 29, 2019
From: ROCKET SOFTWARE, INC.
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH
Reel/Frame 049026/0136 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 040014/0756 Recorded Nov 28, 2018
From: CREDIT SUISSE AG
To: ROCKET SOFTWARE, INC.; COMPUTER CORPORATION OF AMERICA; ROCKET SOFTWARE SYSTEMS, INC.
Reel/Frame 048174/0225 →
RELEASE OF SECURITY INTEREST RECORDED AT REEL/FRAME 040015/0171 Recorded Nov 28, 2018
From: CREDIT SUISSE AG
To: ROCKET SOFTWARE, INC.; COMPUTER CORPORATION OF AMERICA; ROCKET SOFTWARE SYSTEMS, INC.
Reel/Frame 048156/0811 →
SECURITY INTEREST Recorded Oct 14, 2016
From: ROCKET SOFTWARE, INC.; COMPUTER CORPORATION OF AMERCIA; ROCKET SOFTWARE SYSTEMS, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT UNDER FIRST LIEN CREDIT AGREEMENT
Reel/Frame 040014/0756 →
SECURITY INTEREST Recorded Oct 14, 2016
From: ROCKET SOFTWARE, INC.; COMPUTER CORPORATION OF AMERCIA; ROCKET SOFTWARE SYSTEMS, INC.
To: CREDIT SUISSE AG, AS COLLATERAL AGENT UNDER SECOND LIEN CREDIT AGREEMENT
Reel/Frame 040015/0171 →
RELEASE OF SECURITY INTEREST Recorded Sep 28, 2016
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: ROCKET SOFTWARE, INC.; COMPUTER CORPORATION OF AMERICA; ROCKET SOFTWARE SYSTEMS, INC.
Reel/Frame 039877/0884 →
RELEASE OF SECURITY INTEREST Recorded Sep 28, 2016
From: CREDIT SUISSE AG, AS COLLATERAL AGENT
To: ROCKET SOFTWARE, INC.; COMPUTER CORPORATION OF AMERICA; ROCKET SOFTWARE SYSTEMS, INC.
Reel/Frame 039877/0807 →
SECURITY AGREEMENT Recorded Mar 2, 2012
From: ROCKET SOFTWARE, INC.; ROCKET SOFTWARE (US) LLC; COMPUTER CORPORATION OF AMERICA; ALDON COMPUTER GROUP; ZEPHYR DEVELOPMENT CORPORATION
To: CREDIT SUISSE AG, AS SECOND LIEN ADMINISTRATIVE AGENT
Reel/Frame 027800/0744 →
SECURITY AGREEMENT Recorded Mar 2, 2012
From: ROCKET SOFTWARE, INC.; ROCKET SOFTWARE (US) LLC; COMPUTER CORPORATION OF AMERICA; ALDON COMPUTER GROUP; ZEPHYR DEVELOPMENT CORPORATION
To: CREDIT SUISSE AG, AS FIRST LIEN ADMINISTRATIVE AGENT
Reel/Frame 027800/0921 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 30, 2008
From: ARKIVIO, INC.
To: ROCKET SOFTWARE, INC.
Reel/Frame 021603/0331 →
SECURITY AGREEMENT Recorded Mar 26, 2003
From: ARKIVIO, INC.
To: MOORE MACRO FUND, L.P.; JAFCO AMERICA TECHNOLOGY FUND III, LP; JAFCO AMERICA TECHNOLOGY CAYMAN FUND III, LP; JAFCO USIT FUND III, LP; JAFCO AMERICA TECHNOLOGY AFFILIATES FUND III, LP; VOYAGER CAPITAL FUND II, LP; VOYAGER CAPITAL FUND II-A, LP; VOYAGER CAPITAL FOUNDERS FUND II, LP
Reel/Frame 013517/0079 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 30, 2002
From: LEUNG, ALBERT; PALISKA, GIOVANNI; GREENBLATT, BRUCE; CHANDRA, CLAUDIA
To: ARKIVIO, INC.
Reel/Frame 013260/0905 →