[prev in list] [next in list] [prev in thread] [next in thread] 

List:       rampart-dev
Subject:    [jira] [Resolved] (AXIS2-4880) I have patches to fix poor scalability of ADB's POJO XMLStreamReader 
From:       "Andreas Veithen (JIRA)" <jira () apache ! org>
Date:       2017-05-06 19:22:05
Message-ID: JIRA.12479942.1289818926000.144346.1494098525002 () Atlassian ! JIRA
[Download RAW message or body]


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

Andreas Veithen resolved AXIS2-4880.
------------------------------------
    Resolution: Incomplete

> I have patches to fix poor scalability of ADB's POJO XMLStreamReader implementation
> -----------------------------------------------------------------------------------
> 
> Key: AXIS2-4880
> URL: https://issues.apache.org/jira/browse/AXIS2-4880
> Project: Axis2
> Issue Type: Improvement
> Components: adb
> Affects Versions: 1.5.2
> Environment: Debian Lenny (x86_64), Java 1.6.0 (Sun), NetBeans, Tomcat 6, POJO web \
>                 service deployed as .aar file.
> Reporter: Dan Armstrong
> Assignee: Amila Chinthaka Suriarachchi
> Original Estimate: 0.5h
> Remaining Estimate: 0.5h
> 
> First, ADB's XMLStreamReader implementation becomes much slower when many complex \
> types exist in the TypeTable.  This causes many repeated interations through the \
> entire map for building the ADBNamespaceContext.  I have removed the necessity of \
> this repeated iteration by: 1) TypeTable generates any missing prefixes when new \
> QName is added 2) TypeTable maintains prefix->namespace and namespace->prefix \
> mappings 3) ADBNamespaceContext now checks in the following order (should be \
> functionally equivalent to adding all complex types from TypeTable, but without the \
> overhead): a) Use any added directly to our context
> b) Check TypeTable mappings (This is the key addition)
> c) Check parent NamespaceContext
> Second, ADBNamespaceContext is fairly heavy weight in heap space.  I have minimized \
> the heap space by: 1) Delayed allocation of the internal ArraySet
> 2) Using new AddOneNamespaceContext implementation when one and only one QName is \
> added to the NamespaceContext. In our system we currently have 407 complex types in \
> the TypeTable and were suffering serious slowdown.  We have more types to add to \
> this system so this problem needed to be addressed.  The results of my patches to \
> ADB in Axis 1.5.2 are: Times for a series of web services calls, retrieving various \
> lengths of heterogeneous arrays of complex types: Before modifications:
> 751.554 sec: Warm-up
> 752.395 sec: Second pass
> After modifications:
> 138.107 sec: Warm-up
> 110.705 sec: Second pass
> RMI (Just for comparison):
> 16.818 sec: Warm-up
> 14.059 sec: Second pass
> In summary, the new code is seven times as fast for our scenario with a higher \
> number of complex types.  Where may I send the patches or may I commit directly to \
> your repositories? Thank you,
> Dan Armstrong
> AO Industries, Inc.



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

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


[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic