[
https://issues.apache.org/jira/browse/GEODE-6637?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Darrel Schneider updated GEODE-6637:
------------------------------------
Labels: performance (was: )
> 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
> Priority: Major
> Labels: performance
>
> 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)