Darrel Schneider created GEODE-6637:
---------------------------------------

             Summary: BucketRegion.allKeysMap hurts partitioned region 
concurrency
                 Key: GEODE-6637
                 URL: https://issues.apache.org/jira/browse/GEODE-6637
             Project: Geode
          Issue Type: Improvement
          Components: core
            Reporter: Darrel Schneider


The allKeysMap on BucketRegion is a contention point for write operations on 
partitioned regions. I saw this while running a benchmark that had proxy 
clients doing partitioned region puts to two servers with redundancy. If I 
lowered the number of keys in the region, causing all the threads to be trying 
to update the same key, I saw the "allKeysMap" become even more of a contention 
point. A replicate region did much better when updating the same key.

The allKeysMap was added for the bulk ops (putAll and removeAll) but all write 
ops end up synchronizing on it to both find an existing lock, add one if no 
lock exists, and to release the lock.

Note that even if allKeysMap could be made a concurrent structure, it currently 
contains instances of LockObject which every pr write object locks and other 
threads on the same key have to wait on.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to