Patent ID: 7760743

Claim:
A node availability management system comprising: a president node comprising: a message queue to store a message; a decision engine comprising: an operation manager configured to generate an operation based on said message, and wherein said operation includes a plurality of atomic actions arranged in a dependency graph to respond to the message, a graph builder configured to build the dependency graph for the operation using the plurality of atomic actions, a domain manager configured to: determine an operation domain comprising at least one of a plurality of nodes affected by the operation and at least one of a plurality of components affected by the operation, compare the operation domain of the operation to a second operation domain of a concurrently executing second operation, determine whether the operation domain of the operation conflicts with the second operation domain of the concurrently executing second operation, wherein the domain manager locks the operation domain when no conflict exists, and release the operation domain when the operation is completed; an executor configured to execute said operation by executing the plurality of atomic actions in the dependency graph in breadth-first order, wherein a parent atomic action of the plurality of atomic actions is completely executed before a child atomic action of the plurality of atomic actions is executed, wherein the executor maintains a queue of parent atomic actions, and wherein the executor is further configured to: add the parent atomic action to the queue, execute the parent atomic action, remove the parent atomic action from the queue, add the dependent child atomic actions to the queue, and tag the operation as complete when the queue is empty; and a slave node operatively connected to the president node, wherein the executor offloads the execution of at least one of the plurality of atomic actions to the slave node, and wherein executing the plurality of atomic actions is suspended until one of a group consisting of the slave node replying to the atomic action and a timeout occurs.