Patent ID: 7962915

Claim:
A method for preserving an operating state for a cluster of data servers with a shared storage, the method comprising: interacting, by a data server, with at least one client in a plurality of clients via a communication channel, to generate state information, wherein the state information comprises at least one of an open state associated with a set of files currently open on at least one cluster server in a plurality of cluster servers and a delegation state indicating a set of leases associated with the at least one client, wherein the at least one client uses the set of leases to manage a set of files; recognizing an event that causes a data server to fail, wherein the data server is a cluster server in the plurality of cluster servers communicatively coupled to a shared storage database, and wherein each client in the plurality of clients owns at least one lock associated with data in the shared storage database through at least one of the cluster servers in the plurality of cluster servers; establishing, after recognizing that the data server has failed, at least one of the data servers as a replacement server for the failed data server; placing, in response to the data server failing, each of a remaining set of the cluster servers in a state that prevents each of the plurality of clients from obtaining a lock owned by another of the plurality of clients prior to the data server failing; notifying a set of client in the plurality of clients that the data server has failed, wherein each client in the set of clients each own the at least one lock through the data server that has failed; granting, in response to placing each of the remaining cluster servers in the state and the notifying, each of the set of clients to reclaim, through at least two of cluster servers, the at least one lock held by the each of the plurality of clients during when each of the cluster servers are in the state; initiating a recovery of the failed data server; providing, after the data server has failed and after the replacement server has been established, the replacement server with an identity of the failed data server and of clients that were in communication with the failed data server prior to failure; providing the replacement server with the state information associated with the clients when the data server failure occurred; redirecting the clients to the replacement server; the replacement server preserving the provided state information associated with the redirected clients; and the replacement server serving the redirected clients.