[
https://issues.apache.org/jira/browse/DIRMINA-934?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14584118#comment-14584118
]
Jeff MAURY commented on DIRMINA-934:
------------------------------------
Emmanuel,
I think I got your point. The idea behind the decoderOut is that it is
currently implemented as a queue of generated messages that are sent to the
next filter upon flush. The problem is that as it is bound to the session, then
we need a lock in case 2 ProcotolCodec filters got executed concurrently.
My proposition is the following:
* remove the synchronisation
* replace the getDecoderOut by an overriding method (it is private in 2.0 so
it cannot be overriden) and remove the session storage and return a new object
each time it is called.
> Replace synchronized with a Semaphore for better performance
> ------------------------------------------------------------
>
> Key: DIRMINA-934
> URL: https://issues.apache.org/jira/browse/DIRMINA-934
> Project: MINA
> Issue Type: Improvement
> Components: Core
> Affects Versions: 2.0.7, 2.0.8
> Environment: Window 8 Pro x64, JDK 7
> Reporter: Paul Gregoire
> Labels: patch
> Fix For: 2.0.8
>
> Attachments: ProtocolCodecFilterWithSemaphoreAndMore.diff
>
> Original Estimate: 2h
> Remaining Estimate: 2h
>
> Replacing the synchronized block with a Semaphore in the ProtocolCodecFilter
> provides a lot of benefit in terms of locking and also reduces CPU
> utilization. See attached git diff.
--
This message was sent by Atlassian JIRA
(v6.3.4#6332)