The PartitionedLockHead allows optimizing the case where requests overwhelmingly use the intent lock modes MODE_IS and MODE_IX, which are compatible with each other.
Having to use a single LockHead causes contention where none would be needed. So, each Locker is associated with a specific partition containing a mapping of resourceId to PartitionedLockHead.
As long as all lock requests for a resource have an intent mode, as opposed to a conflicting mode, its LockHead may reference PartitionedLockHeads. A partitioned LockHead will not have any conflicts. The total set of granted requests (with intent mode) is the union of its grantedList and all grantedLists in PartitionedLockHeads.
The existence of a PartitionedLockHead for a resource implies that its LockHead is partitioned. If a conflicting request is made on a LockHead, all requests from PartitionedLockHeads are migrated to that LockHead and the LockHead no longer partitioned.
Not thread-safe, must be accessed under its partition lock. May not lock a LockManager bucket while holding a partition lock.