Patent ID: 8156124

Claim:
A data processing system, comprising: a memory device including a database for storing first data descriptive of at least one graph and for storing second data descriptive of an assignment of a user to a first node at a first level of the graph; a server comprising: memory for storing a pre-computed least common ancestor index of the graph, the pre-computed least common ancestor index being assigned a status; and a processor for: changing the status of the pre-computed least common ancestor index from a first status to a second status when initializing computation of a second least common ancestor index, the second status indicating that the pre-computed least common ancestor index is outdated, and associating a time stamp with the pre-computed least common ancestor index, the time stamp indicating a time that the status change occurred; receiving an access request of the user, the access request specifying a second node at a second level of the graph, wherein the pre-computed least common ancestor index is computed before receiving the access request; determining whether to use the pre-computed least common ancestor index to process the access request based on whether the pre-computed least common ancestor index has the first status or the second status, and based on whether a predetermined time interval has elapsed from the time indicated by the time stamp if the pre-computed least common ancestor index has the second status; determining a least common ancestor of the first and second nodes of the graph using the pre-computed least common ancestor index when the pre-computed least common ancestor index has the first status, or when the pre-computed least common ancestor index has the second status and the predetermined time interval has not elapsed; and performing an authorization check to deny authorization for the access request when the first and second levels are the same level.