Patent ID: 9262463
Filing Date: 2016-02-16
CPC Classification: G06F

Claim Text:
1. A computer program product for accessing a computer memory to manage a data set stored in a storage, the computer program product comprising a non-transitory computer readable storage medium having computer readable program code embodied therein that executes to perform operations, the operations comprising: providing a data set index in the computer memory having nodes including internal and leaf nodes forming a tree data structure representing all or a portion of the data set index for the data set, wherein the leaf nodes include information on data set members, wherein each internal node includes a pointer to at least one other of the internal nodes or the leaf nodes based on key values used to traverse the tree data structure to reach the leaf nodes that are used to access the members of the data set; receiving a lock request for a requested lock on a requested data set member of the data set members; in response to determining that a current lock is set at a locked node comprising one of the nodes linked to a locked data set member of the data set members that prevents a grant of the requested lock, determining whether there are different first and second descendant nodes from the locked node at a same level of the tree data structure linked to the requested data set member and the locked data set member, respectively; and in response to determining that there are the different first and second descendant nodes: setting the requested lock for the requested data set member at the first descendant node; moving the current lock to the second descendant node for the locked data set member; and granting the requested lock to the lock request; clearing a rebalance flag at a modified node; and until a root node is rebalanced, in response to rebalancing at one of the nodes as a result of the rebalance flag being set, setting a rebalance flag at a parent node to the node rebalanced to cause a rebalancing at the parent node when there is no lock held at the parent node.