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

vincent royer commented on CASSANDRA-13271:
-------------------------------------------

As you suggested, here is the cleaner code using computeIfAbsent for all 
mentioned classes {Map,Set,List}{Type,Serializer}, available on github 
https://github.com/strapdata/cassandra , commit 
https://github.com/strapdata/cassandra/commit/6f68db8c07fe4777854fae540bd76e8bcdb80b49.

> Reduce lock contention on instance factories of ListType and SetType
> --------------------------------------------------------------------
>
>                 Key: CASSANDRA-13271
>                 URL: https://issues.apache.org/jira/browse/CASSANDRA-13271
>             Project: Cassandra
>          Issue Type: Improvement
>          Components: Core
>            Reporter: vincent royer
>            Priority: Minor
>              Labels: performance
>             Fix For: 4.x
>
>         Attachments: 0001-CASSANDRA-13271-computeIfAbsent.patch, 
> 0001-CASSANDRA-13271-singleton-factory-concurrency-opimiz.patch
>
>
> By doing some performance tests, i noticed that getInstance() in 
> org.apache.cassandra.db.marshal.ListType and SetType could suffer from lock 
> contention on the singleton factory getInstance(). Here is a proposal to 
> reduce lock contention by using a ConcurrentMap and the putIfAbsent method 
> rather than a synchronized method.



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

Reply via email to