Patent ID: 8387066

Claim:
A method for executing a plurality of storage management tasks in a storage area network, wherein each task defines a unit of work that can be executed atomically to achieve a desired result in the storage area network, the method comprising: identifying a set of preconditions for execution of the plurality of tasks, the set of preconditions establishing dependencies between the plurality of tasks in the storage area network, wherein execution of the plurality of tasks is contingent upon satisfaction of the set of preconditions; generating a scheduling data structure based on the set of preconditions in order to schedule execution of the plurality of tasks, further comprising generating the scheduling data structure so that each task has (i) an associated time period for execution in the storage area network in accordance with the established dependencies between each task, and (ii) for each task's respective time period, an associated thread allocation enabling simultaneous execution of tasks and their respective threads for a given number of available threads in the storage area network, and wherein simultaneous execution of tasks occurs among tasks having no interdependencies therebetween; and optimizing task execution based on the scheduling data structure, wherein optimizing task execution minimizes resource consumption in the storage area network during execution of the plurality of tasks.