You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@synapse.apache.org by "Hiranya Jayathilaka (JIRA)" <ji...@apache.org> on 2013/07/20 00:34:49 UTC

[jira] [Resolved] (SYNAPSE-853) When sending concurrent requests to a statistics enabled sequence, getting "concurrent modification exception"

     [ https://issues.apache.org/jira/browse/SYNAPSE-853?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Hiranya Jayathilaka resolved SYNAPSE-853.
-----------------------------------------

    Resolution: Fixed

Thanks for pointing this out. The CopyOnWriteArrayList seems to be costly. It duplicates the underlying array on each write. I fixed the issue by using a ConcurrentLinkedQueue instead, which uses a more efficient wait-free synchronization algorithm.
                
> When sending concurrent requests to a statistics enabled sequence, getting "concurrent modification exception"
> --------------------------------------------------------------------------------------------------------------
>
>                 Key: SYNAPSE-853
>                 URL: https://issues.apache.org/jira/browse/SYNAPSE-853
>             Project: Synapse
>          Issue Type: Bug
>          Components: Tracing and Statistics
>    Affects Versions: 2.1
>            Reporter: Vijayaratha Vijayasingam
>            Assignee: Hiranya Jayathilaka
>            Priority: Critical
>             Fix For: NIGHTLY
>
>         Attachments: statisticsReport.patch
>
>
> When sending concurrent requests(tps~=250) for a statistics enabled sequence, I'm getting "ConcurrentModificationException" [1]
> @ StatisticsRecord class, Arraylist(which is not thread safe), is used to collect all statistics logs. ..
> Instead of Arraylist, we can use "CopyOnWriteArrayList" which is thread safe and allows multiple concurrent reads, and for reads to occur concurrently with a write..
> I tested with this option and did not notice any considerable performance change..
> [1][2012-03-14 22:10:16,398] ERROR - StatisticsReporterThread Error while collecting and reporting mediation statistics
> java.util.ConcurrentModificationException
>         at java.util.AbstractList$Itr.checkForComodification(AbstractList.java:372)
>         at java.util.AbstractList$Itr.next(AbstractList.java:343)
>         at org.apache.synapse.aspects.statistics.StatisticsRecord.getAllLogIds(StatisticsRecord.java:88)
>         at org.apache.synapse.aspects.statistics.view.SystemViewStrategy.determineView(SystemViewStrategy.java:61)

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

---------------------------------------------------------------------
To unsubscribe, e-mail: dev-unsubscribe@synapse.apache.org
For additional commands, e-mail: dev-help@synapse.apache.org