Hello.

Thank you for your cooperation !

About 1), I will add comment to the OutBufferedStream.java

About 2),
I think description of configuration property derby.drda.streamOutBufferSize should be added to next, https://svn.apache.org/repos/asf/db/derby/docs/trunk/src/adminguide/tadminconfigsettingnetwrokserverproperties.dita
as rendered to
http://db.apache.org/derby/docs/10.1/adminguide/tadminconfigsettingnetwrokserverproperties.html

I will add subtask of DERBY-326 for patch of documentation.

Best regards.


Bryan Pendleton (JIRA) wrote:

[ http://issues.apache.org/jira/browse/DERBY-326?page=comments#action_12377035 ]
Bryan Pendleton commented on DERBY-326:
---------------------------------------

As you know, I have studied this patch multiple times; I think it is excellent.

Two thoughts, if you have not yet committed the patch:

1) It would be nice if you could add some comments to OutBufferedStream.java 
indicating the purpose of this test.

2) Should we add some documentation about the new configuration property 
derby.drda.streamOutBufferSize?

Thank you very much for all the great work on this issue!


Improve streaming of large objects for network server and client
----------------------------------------------------------------

        Key: DERBY-326
        URL: http://issues.apache.org/jira/browse/DERBY-326
    Project: Derby
       Type: Improvement

 Components: Network Client, Performance, Network Server
   Reporter: Kathey Marsden
   Assignee: Tomohito Nakayama
Attachments: ClobTest.zip, DERBY-326.patch, DERBY-326_2.patch, 
DERBY-326_3.patch, DERBY-326_4.patch, DERBY-326_5.patch, 
DERBY-326_5_indented.patch, DERBY-326_6.patch, DERBY-326_7.patch, 
ReEncodedInputStream.java.modifiedForLongRun

Currently the stream writing  methods in network server and client require a  
length parameter. This means that we have to get the length of the stream 
before sending it. For example in network server in EXTDTAInputStream we have 
to use getString and getbytes() instead of getCharacterStream and 
getBinaryStream so that we can get the  length.
SQLAM Level 7 provides for the enhanced LOB processing to allow streaming 
without indicating the length, so, the writeScalarStream methods in
network server DDMWriter.java and network client Request.java can be changed to 
not require a length.
Code inspection of these methods seems to indicate that while the length is 
never written it is used heavily in generating the DSS. One strange thing is 
that it appears on error, the stream is padded out to full length with zeros, 
but an actual exception is never sent.  Basically I think perhaps these methods 
need to be rewritten from scratch based on the spec requirements for lobs.
After the writeScalarStream methods have been changed, then EXTDAInputStream 
can be changed to properly stream LOBS. See TODO tags in this file for more 
info.  I am guessing similar optimizations available in the client as well, but 
am not sure where that code is.


--
/*

       Tomohito Nakayama
       [EMAIL PROTECTED]
       [EMAIL PROTECTED]
       [EMAIL PROTECTED]

       Naka
       http://www5.ocn.ne.jp/~tomohito/TopPage.html

*/

Reply via email to