You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by "Andrus Adamchik (Created) (JIRA)" <ji...@apache.org> on 2012/01/23 22:03:41 UTC

[jira] [Created] (CAY-1653) Improving DefaultEventManager concurrency - non-bocking DispatchQueue

Improving DefaultEventManager concurrency - non-bocking DispatchQueue
---------------------------------------------------------------------

                 Key: CAY-1653
                 URL: https://issues.apache.org/jira/browse/CAY-1653
             Project: Cayenne
          Issue Type: Improvement
    Affects Versions: 3.1M3
            Reporter: Andrus Adamchik
            Assignee: Andrus Adamchik
             Fix For: 3.1M4


DefaultEventManager and related non-public classes have a bunch of synchronized methods that create problems when lots of contexts exist in the system. This task is about streamlining one important piece of this puzzle - DispatchQueue. It is a reason (not the only one unfortunately) of deadlocks described under CAY-720, CAY-957 and CAY-1652. Also getting rid of it should in theory greatly improve performance (again - in a system with lots of committing contexts).

So switching it to concurrent collections. Specifically 'dispatchEvent' method (add/remove listener methods still require some less invasive synchronization on WeakHashMap. We may replace this one with something like com.google.common.collect.MapMaker some time later... not essential for now).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

[jira] [Closed] (CAY-1653) Improving DefaultEventManager concurrency - non-bocking DispatchQueue

Posted by "Andrus Adamchik (Closed) (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/CAY-1653?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Andrus Adamchik closed CAY-1653.
--------------------------------

    Resolution: Fixed
    
> Improving DefaultEventManager concurrency - non-bocking DispatchQueue
> ---------------------------------------------------------------------
>
>                 Key: CAY-1653
>                 URL: https://issues.apache.org/jira/browse/CAY-1653
>             Project: Cayenne
>          Issue Type: Improvement
>    Affects Versions: 3.1M3
>            Reporter: Andrus Adamchik
>            Assignee: Andrus Adamchik
>             Fix For: 3.1M4
>
>
> DefaultEventManager and related non-public classes have a bunch of synchronized methods that create problems when lots of contexts exist in the system. This task is about streamlining one important piece of this puzzle - DispatchQueue. It is a reason (not the only one unfortunately) of deadlocks described under CAY-720, CAY-957 and CAY-1652. Also getting rid of it should in theory greatly improve performance (again - in a system with lots of committing contexts).
> So switching it to concurrent collections. Specifically 'dispatchEvent' method (add/remove listener methods still require some less invasive synchronization on WeakHashMap. We may replace this one with something like com.google.common.collect.MapMaker some time later... not essential for now).

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira