Patent ID: 9165157
Filing Date: 2015-10-20
Classification: G06F,Y10S

Abstract:
1. A method, embodied in a system in which a given computer and multiple other computers in a cluster share access to a set of named resources, for granting access rights associated with the set of named resources, the method comprising: maintaining current access rights associated with the given computer for the set of named resources, the set of named resources including a first named resource, a second named resource, and a third named resource; associating exclusive access rights to the first named resource for the given computer indicating that the multiple other computers have no associated access rights to the first named resource; associating no access rights to the second named resource for the given computer indicating that the given computer has no knowledge about access associated with the multiple other computers for the second named resource; associating shared access rights to the third named resource for the given computer indicating that none of the multiple other computers has associated exclusive access rights to the third named resource; maintaining respective sets of identifiers of neighbor computers in the cluster, the respective sets of identifiers forming a respective tree associated with a respective resource, each node in the respective tree representing a computer in the cluster, each computer in the tree having a pointer pointing to computers at a higher level towards a root computer of the tree; maintaining each respective tree to include a root computer in the cluster with other computers having one of the computers in their neighbors set as a leader neighbor for that tree, either pointing directly or indirectly to the root computer via a chain composed of leader neighbors; wherein a single computer in the cluster has exclusive access rights for a given shared resource while other computers in the cluster have no access rights for the given shared resource; maintaining the single computer having exclusive access to the given shared resource as a root computer of a respective tree corresponding to the given shared resource, the root computer associated with no neighbor computers; maintaining computers other than the single computer in the cluster as having no access rights to the given shared resource in which each of such computers has only a single neighbor computer associated with the given shared resource, the single neighbor computer being a respective leader computer towards the root computer; maintaining a requesting computer having no access rights to the given shared resource to send a request for exclusive access rights for the given shared resource to the respective leader computer associated with a tree of the given shared resource, the request including identification of the requesting computer and a name of the given shared resource for which exclusive access is being requested; upon receiving the request for exclusive access rights by another computer in the cluster also having no current access rights for the given shared resource as specified by the request, forwarding the request to a respective leader computer towards a root computer having the exclusive access rights to the given shared resource; upon receiving the request for exclusive access rights by the root computer currently having the exclusive access rights for the given shared resource which name is specified in the request, changing access rights to no access rights for the receiving root computer for the given shared resource, associating the computer requesting the exclusive access rights to be a leader and only neighbor computer for the given shared resource and sending the requesting computer a lead message indicating that the requesting computer is allowed to associate itself with exclusive access rights for the given shared resource, the message including the name of the given shared resource; and upon receiving the lead message associated with the given shared resource at the requesting computer in the cluster, assigning the requesting computer with exclusive access rights for the given shared resource and associating an empty neighbors set for the given shared resource at the requesting computer.