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

Knut Anders Hatlen resolved DERBY-5752.
---------------------------------------

          Resolution: Fixed
       Fix Version/s: 10.10.0.0
    Issue & fix info:   (was: Patch Available)

Committed revision 1447722.
                
> LOBStreamControl should materialize less aggressively
> -----------------------------------------------------
>
>                 Key: DERBY-5752
>                 URL: https://issues.apache.org/jira/browse/DERBY-5752
>             Project: Derby
>          Issue Type: Improvement
>          Components: JDBC
>    Affects Versions: 10.9.1.0
>            Reporter: Knut Anders Hatlen
>            Assignee: Knut Anders Hatlen
>             Fix For: 10.10.0.0
>
>         Attachments: buffsize.diff, d5752-1a.diff
>
>
> The constructor LOBStreamControl(EmbedConnection, byte[]) always makes the 
> buffer size equal to the LOB size, effectively creating an extra, fully 
> materialized copy of the LOB in memory.
> I think the assumption here is that a LOB that's already materialized is a 
> small one. That is, LOBs that are smaller than 32 KB and fit in a single page 
> are typically materialized when read from store. However, we sometimes 
> materialize LOBs that are a lot bigger than 32 KB. For example, triggers that 
> access LOBs may materialize them regardless of size (see comment in 
> DMLWriteResultSet's constructor for details). For these large LOBs, it sounds 
> unreasonable to allocate a buffer of the same size as the LOB itself.
> I'd suggest that we change the constructor so that it never allocates a 
> buffer larger than 32KB. That would mean that the behaviour is preserved for 
> all LOBs fetched directly from store (only LOBs that don't fit in a single 
> page will cause temporary files to be created), whereas we'll prevent large 
> LOBs accessed by triggers from being duplicated in memory by overflowing to 
> temporary files.

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Reply via email to