[ https://issues.apache.org/jira/browse/GEODE-2141?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=15705533#comment-15705533 ]
ASF GitHub Bot commented on GEODE-2141: --------------------------------------- Github user metatype commented on a diff in the pull request: https://github.com/apache/incubator-geode/pull/299#discussion_r90025325 --- Diff: geode-core/src/main/java/org/apache/geode/internal/statistics/StatisticsMonitor.java --- @@ -29,23 +29,20 @@ private final Object mutex = new Object(); - private volatile List<StatisticsListener> listeners = Collections.<StatisticsListener>emptyList(); + private volatile ConcurrentHashSet<StatisticsListener> listeners = + new ConcurrentHashSet<StatisticsListener>(); - private volatile List<StatisticId> statisticIds = Collections.<StatisticId>emptyList(); + private volatile ConcurrentHashSet<StatisticId> statisticIds = --- End diff -- Instead of `volatile` I think this should be final. I don't see a write to this var after initialization. > StatisticsMonitor and StatMonitorHandler should use ConcurrentHashSet to > store monitors, listeners and statisticIds > ------------------------------------------------------------------------------------------------------------------- > > Key: GEODE-2141 > URL: https://issues.apache.org/jira/browse/GEODE-2141 > Project: Geode > Issue Type: Improvement > Reporter: Avinash Dongre > Assignee: Avinash Dongre > > In StatisticsMonitor and StatMonitorHandler List is used to store monitors, > listeners and statisticIds. > We should be using ConcurrentHashSet for performance Reason. > In my local testing When I replace the List to > com.gemstone.gemfire.internal.concurrent. > ConcurrentHashSet > I see significant improvement in creating large number of region creation. > ( from ~7hrs to ~26 minutes) > More details about the same is on dev list. > Refer : http://markmail.org/message/o7td3fczylx4uaet -- This message was sent by Atlassian JIRA (v6.3.4#6332)