A system and method for concurrency control of hierarchically structured data is provided. Lock requests on a target node are processed by exploiting ancestor-descendant information encoded into prefix encoded node identifiers (IDs). A set of implicit locks on ancestor nodes along a path from an immediate parent of a target node to a root node is derived from an explicit lock request on a target node. A logical lock tree describing existing lock modes for ancestor nodes is consulted to determine compatibility with the derived set of implicit locks. If existing lock modes for ancestor nodes are compatible with the derived set of implicit locks, a lock request on a target node is granted. Otherwise, the lock request is denied. A lock release request follows the reverse process; a target node in a particular transaction is released, as are subsequent locks on its ancestors made by the same transaction.
展开▼