Patent ID: 7480909

Claim:
A method for cooperative distributed task management in a storage subsystem with multiple controllers, comprising: initiating by an initiating controller a task to be performed; establishing by the initiating controller a task coordination data object shared by the multiple controllers, wherein the task coordination data object comprises discrete partitions of the task comprising task instructions and states for each partition of the task, task instructions for each partition of the task capable of being completed separately by one of the plurality of controllers; indicating a state of a partition as being READY, IN PROGRESS, or COMPLETE; selecting by a free controller an available partition of the task separately and independently of the other controllers as indicated by the states for each partition of task instructions wherein the selecting by a free controller is performed by examining the partitions in a READY state and selecting at least one partition in the READY state to operate on; and completing by the free controller the selected partition of the task separately and independently of the other controllers as indicated by the states for each partition of task instructions.