You are viewing a plain text version of this content. The canonical link for it is here.
Posted to issues@activemq.apache.org by "ASF subversion and git services (JIRA)" <ji...@apache.org> on 2017/05/12 14:08:04 UTC

[jira] [Commented] (ARTEMIS-905) JCtools ConcurrentMap replacement

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

ASF subversion and git services commented on ARTEMIS-905:
---------------------------------------------------------

Commit c1d55aa84f2ca9946afc39038c14d729c8bae36a in activemq-artemis's branch refs/heads/master from [~michael.andre.pearce]
[ https://git-wip-us.apache.org/repos/asf?p=activemq-artemis.git;h=c1d55aa ]

ARTEMIS-1156: FIX: Long Autoboxing occurring on Hot Path

Building on ARTEMIS-905 JCtools ConcurrentMap replacement  first proposed but currently parked by @franz1981, replace the collections with primitive key concurrent collections to avoid auto boxing.

The goal of this is to reduce/remove autoboxing on the hot path.
We are just adding jctools to the broker (should not be in client dependencies)
Like wise targeting specific use case with specific implementation rather than a blanket replace all.

Using collections from Bookkeeper, reduces outside tlab allocation, on resizing compared to JCTools, which occurs frequently on testing.


> JCtools ConcurrentMap replacement
> ---------------------------------
>
>                 Key: ARTEMIS-905
>                 URL: https://issues.apache.org/jira/browse/ARTEMIS-905
>             Project: ActiveMQ Artemis
>          Issue Type: Improvement
>            Reporter: Francesco Nigro
>            Priority: Minor
>
> The OSS project JCTools (already used in Netty core) provides primitive (long) and normal implementations of ConcurrentMap with better scalability, lower memory footprint (garbage collector wise too) and equals to better performances than the vanilla's ConcurrentHashMap.
> It worth to replace every ConcurrentHashMap usage with the JCtools version.
> [Here|http://www.azulsystems.com/blog/cliff/2007-03-26-non-blocking-hashtable] there is an old but valid overview of the map and on JCtools are provided [JMH benchmarks|https://github.com/JCTools/JCTools/blob/master/jctools-benchmarks/src/main/java/org/jctools/maps/nhbm_test/jmh/ConcurrentMapThroughput.java] to evaluate the performance of the implementation.



--
This message was sent by Atlassian JIRA
(v6.3.15#6346)