Improve IO architecture to minimize copying
-------------------------------------------

                 Key: AXIS2C-290
                 URL: http://issues.apache.org/jira/browse/AXIS2C-290
             Project: Axis2-C
          Issue Type: Improvement
            Reporter: James Clark


At the moment, there's a lot of inefficiency in how data moves through the 
system.   Data (especally binary data) is copied multiple times, and often 
multiple copies of potentially large data items are held in memory. The design 
needs revisiting so as to minimize copying. 

Apache2's native IO interface is "bucket brigades". At the moment, we're not 
using this but rather the Apache 1.x compatibility layer that is built on top 
of this.  This is causing an unnecessary copy of data both on input and output. 
 The design goals should include:

- the XML parser should be able to operate directly on bytes in a bucket brigade
- the MIME parser should be able to operate directly on bytes in a bucket 
brigade
- when a binary blob in the axiom tree (what is currently called a data 
handler) comes from MTOM optimizsed input, it should refer to bytes in the 
Apache bucket brigade
- when a binary blob in the axiom tree is output using MTOM, that blob should 
be passed for output to Apache without any copying
- when data is encrypted, the encrypted bytes should be stored once and then 
passed for output to Apache without any copying
- when the message body is signed, it should be serialized once; this 
serialization should both be used for signing and be passed for output to 
Apache without copying (this is particularly tricky because the MTOMification 
is applied for output but not for signing)
- the design is not too tightly coupled to Apache2's bucket brigades interface.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: 
http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

---------------------------------------------------------------------
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]

Reply via email to