You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@geode.apache.org by "ASF subversion and git services (Jira)" <ji...@apache.org> on 2022/03/07 21:35:00 UTC

[jira] [Commented] (GEODE-9132) PR clear to take locks on all buckets unconditionally.

    [ https://issues.apache.org/jira/browse/GEODE-9132?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17502563#comment-17502563 ] 

ASF subversion and git services commented on GEODE-9132:
--------------------------------------------------------

Commit e3ef06166bea60459ec2ae33beca2e547af4224c in geode's branch refs/heads/feature/GEODE-7665 from Kirk Lund
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=e3ef061 ]

GEODE-9132: PartitionedRegionClearWithConcurrentOperationsDUnitTest cleanup 2


> PR clear to take locks on all buckets unconditionally.
> ------------------------------------------------------
>
>                 Key: GEODE-9132
>                 URL: https://issues.apache.org/jira/browse/GEODE-9132
>             Project: Geode
>          Issue Type: Sub-task
>          Components: regions
>            Reporter: Anilkumar Gingade
>            Assignee: Blake Bender
>            Priority: Major
>              Labels: GeodeOperationAPI, pull-request-available
>
> Existing behavior:
> PR clear employs two different locking behavior based on the presence of client subscription and cache-listeners. If there is no subscription or cache-listener it takes the bucket locks on local nodes else it will send a message to take locks on all buckets before doing the clear.
> Expected behavior:
> To keep the code/behavior simple PR clear to employ single locking behavior. It will take the lock on all buckets before doing clear irrespective of subscription or cache-listener presence.
> Solution:
> Remove the following check that drives taking lock on local nodes:
> {code}
> boolean acquireClearLockForNotification =
>           (partitionedRegion.hasAnyClientsInterested() || partitionedRegion.hasListener());
> {code}
> And it will call:
> {code}
> obtainLockForClear(regionEvent);
> {code}
> Also remove the logic taking lock in individual nodes in:
> DistributedRegion.obtainWriteLocksForClear()
> Remove:
> if (!localLockedAlready) {
>       lockLocallyForClear(getDistributionManager(), getMyId(), regionEvent);
>     }
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)