You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "Darrel Schneider (JIRA)" <ji...@apache.org> on 2019/04/11 21:15:00 UTC

[jira] [Created] (GEODE-6637) BucketRegion.allKeysMap hurts partitioned region concurrency

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)