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 2018/10/24 21:05:00 UTC

[jira] [Commented] (GEODE-5922) SerialGatewaySenderQueue concurrency is poorly implemented

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

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

Commit 7b7fed861903d9a9660e1f5b1c4d778d14f5eca5 in geode's branch refs/heads/feature/GEODE-5922 from [~bschuchardt]
[ https://gitbox.apache.org/repos/asf?p=geode.git;h=7b7fed8 ]

GEODE-5922 SerialGatewaySenderQueue concurrency is poorly implemented

Replaced simple synchronization with a fair write-lock.  The use of
sync to enforce serial queueing wasn't fair and caused inconsistent
latency.  I observed one thread that was blocked trying to get the
sync for over 30 seconds while other subsequent threads were able to
get the sync and queue their events.


> SerialGatewaySenderQueue concurrency is poorly implemented
> ----------------------------------------------------------
>
>                 Key: GEODE-5922
>                 URL: https://issues.apache.org/jira/browse/GEODE-5922
>             Project: Geode
>          Issue Type: Improvement
>          Components: wan
>            Reporter: Bruce Schuchardt
>            Assignee: Bruce Schuchardt
>            Priority: Major
>
> This class uses synchronization on the queue to limit access to one put at a time.  Synchronization isn't a fair locking mechanism so threads can be blocked trying to add events to the queue while other more recent events get the lock and insert their events.  This causes inconsistent latency which I've observed being as long as 30 seconds, causing client connections to be shut down by the ClientHealthMonitor.



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