Patent ID: 7930697

Claim:
A mass storage controller system for use with an array of storage devices, comprising: a plurality of controllers that control the array of storage devices, each of the plurality of controllers comprising: a CPU that controls the operation of a controller; program memory, coupled to the CPU, that stores program instructions and variables for the operation of the CPU; and cache memory, coupled to the CPU, that stores information related to the array of storage devices; wherein a controller of the plurality of controllers is adapted to initiates a task to be performed, the controller initiating the task establishes a task coordination data object shared by the plurality of controllers, wherein the task coordination data object comprises discrete partitions of the task to be performed comprising task instructions and states for each partition of the task, the task instructions for each partition of the task is completed separately by one of the plurality of controllers, wherein a controller of the plurality of controllers indicates a state of a partition as being READY, IN PROGRESS, or COMPLETE; and wherein a free controller of the plurality of controllers is adapted to select an available partition of the task separately and independently of the other controllers of the plurality of controllers as indicated by the states for each partition of task instructions, by examining the partitions in a READY state and selecting at least one partition in the READY state to operate on; and wherein the free controller completes the selected partition of the task separately and independently of the other controllers as indicated by the states for each partition of task instructions.