1. A system having a processor for dynamically assigning data storage requests to data storage resources, the system comprising: a means for receiving an initial request plan specifying how an alternate data path is to be chosen when preferred data storage resources are not available; a means for building a grid allocation table by grouping data storage resources in columns or rows of the grid allocation table according to common characteristics of the data storage resources; a means for assigning, when preferred resources are available, a row or column, respectively, of the grid allocation table to a data allocation request using preferred data storage resources; a means for assigning, when preferred data storage resources are not available, an alternate set of data storage resources to the data storage request; wherein each column or row of the grid allocation table operates independently on separate data storage requests.