| CPC G06F 9/52 (2013.01) [G06F 9/505 (2013.01); G06F 9/5072 (2013.01); G06F 9/5077 (2013.01)] | 12 Claims | 

| 
               1. A method comprising: 
            creating a monitoring process comprising a plurality of threads; 
                creating a partitioned table of resources accessible by threads of the monitoring process in process memory allocated to the monitoring process, the partitioned table comprising a plurality of partitions; 
                mapping each of a plurality of keys of the partitioned table to a resource of the partitioned table; 
                in response to a thread of the monitoring process requesting access to a resource of the partitioned table, inputting a key mapped to the resource into a pseudorandom deterministic function to yield an output, and performing a modulus operation upon the output by a count of the plurality of locks to yield a first lock of the plurality of locks; 
                tracking, by the monitoring process, degree of lock contention at the resources; 
                performing, by the monitoring process, one of increasing or decreasing the plurality of locks and plurality of partitions in number based on the degree of lock contention; and 
                in response to the thread requesting access to the resource, inputting the key into the pseudorandom deterministic function to yield the output, and performing the modulus operation upon the output by an increased or decreased count of the plurality of locks to yield a second lock of the plurality of locks. 
               |