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]