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)