[ https://issues.apache.org/jira/browse/FELIX-1746?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12767972#action_12767972 ]
Karl Pauls commented on FELIX-1746: ----------------------------------- I created and resolved FELIX-1783 to track and commit my patch. I added a link to this one so that we can keep it around and revisit the COW map based solution when we have the time to look at where and how we can use it throughout the framework. > Eliminate contention on ServiceRegistry.getServiceReferences(String, Filter) > ---------------------------------------------------------------------------- > > Key: FELIX-1746 > URL: https://issues.apache.org/jira/browse/FELIX-1746 > Project: Felix > Issue Type: Improvement > Components: Framework > Affects Versions: felix-2.0.0 > Reporter: Jed Wesley-Smith > Assignee: Karl Pauls > Attachments: blocked-threads.gif.jpg, FELIX-1746-alt.patch, > FELIX-1746-alt2.patch, FELIX-1746.patch > > > Performance testing has shown that there is significant contention on the > ServiceRegistry object's monitor during startup. This is caused by Spring DM > making lots of calls to the synchronized method > ServiceRegistry.getServiceReferences(String, Filter). This method is > synchronized in order to protect the m_serviceRegsMap HashMap, but the method > does a lot more work than simply accessing the map. > Propose changing the ServiceRegistry to use a thread-safe Map implementation > that does not require external synchronization, in particular a > CopyOnWriteMap. I will add a patch that includes a CopyOnWriteMap > implementation. -- This message is automatically generated by JIRA. - You can reply to this email to add a comment to the issue online.