Patent ID: 8793527

Claim:
A method for handling partially inconsistent states among members of a cluster in an erratic storage network that responds to requests from a client, the method comprising: assigning a unique commit identifier corresponding to each successive modification of state of the cluster when an update request has been successfully completed; correlating an incoming request with a given member of the cluster with any commit identifiers necessary to satisfy the request; detecting, on the incoming request to the given member of the cluster, whether the commit identifiers necessary to satisfy the request have been applied to the given member; and if the commit identifiers necessary to satisfy the request have been applied to the given member, then satisfying the incoming request; if the commit identifiers necessary to satisfy the request have not been applied to the given member, then using a set of selection criteria to determine which one or more of the following processes shall be performed: (i) asynchronously causing one or more other members of the cluster, having commit identifiers necessary to satisfy the request, to satisfy the request; (ii) asynchronously causing one or more other members to provide to the given member the missing commit identifiers to satisfy the request, so that the given member can satisfy the request; and (iii) waiting until the given member has been caused to receive the missing commit identifiers to satisfy the request, so that the given member can satisfy the request; and performing the selected one or more processes.