db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From TomohitoNakayama <tomon...@basil.ocn.ne.jp>
Subject Re: [jira] Commented: (DERBY-326) Improve streaming of large objects for network server and client
Date Fri, 07 Apr 2006 15:55:28 GMT
Hello Kathey.

Thank you.
I wanted to think it was acceptable trade off,
however, I couldn't because I was pessimistic in this phenomena.

Your comment encouraged me.
I want to take your idea if there are no opinion against from others.

Best regards.


Kathey Marsden (JIRA) wrote:

>    [ http://issues.apache.org/jira/browse/DERBY-326?page=comments#action_12373502 ] 
>
>Kathey Marsden commented on DERBY-326:
>--------------------------------------
>
>The response by mail was that yes traditional way for blob meant that BLOB's would still
be materialized into memory on the server.    The description of the performance degredation
for BLOB's made it sound like it was not severe.  I think  a slight performance degradation
for  BLOB's is an exceptable trade off for not having them materialized into memory.
> 
>
>  
>
>>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 Server, Network Client, Performance
>>    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, 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
        tomonaka@basil.ocn.ne.jp
        tomohito@rose.zero.ad.jp
        tmnk@apache.org

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

*/ 


Mime
View raw message