[ 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)