db-derby-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Kristian Waagan (JIRA)" <j...@apache.org>
Subject [jira] Updated: (DERBY-3825) StoreStreamClob.getReader(charPos) performs poorly
Date Tue, 14 Oct 2008 09:31:44 GMT

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

Kristian Waagan updated DERBY-3825:
-----------------------------------

    Attachment: derby-3825-2b-internalReader_repositioning.diff

Patch 2b addresses the following:
 - added license to UTF8ReaderTest
 - changed class comment in UTF8ReaderTest
 - added DEBUG block with detailed EOFException

Regarding Knut Anders' comments (from top to bottom):
 - Thanks for looking at the repositioning logic. It is a bit complex, but it should be pretty
well tested functionally. Can it be optimized?
 - Regarding the poor performance you observed, I need to look into it. I will create a new
Jira for it. Implementing getInternalReader is one issue, but I think there are more severe
problems in this code path (it is using some special reader objects). Hopefully the ClobAccessTest
should demonstrate the problem.
 - I resolved the localization issue by throwing a detailed EOFException from inside a debug
block. I chose this over an assert, as an assert makes a test fail (expects EOFException).
 - I changed the comment, it was not very precise. I need a package-private test because of
StoreStreamClob, which is the only user of UTF8Reader.reposition at the moment and I wanted
a little bit more control than what I get going through the JDBC API.

Thanks for looking at the patch!
Unless there are more comments on patch 2b, I expect to commit it shortly.

> StoreStreamClob.getReader(charPos) performs poorly
> --------------------------------------------------
>
>                 Key: DERBY-3825
>                 URL: https://issues.apache.org/jira/browse/DERBY-3825
>             Project: Derby
>          Issue Type: Bug
>          Components: JDBC, Store
>    Affects Versions: 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>         Attachments: derby-3825-0a-preview.diff, derby-3825-1a-reset_readpositioninbuffer.diff,
derby-3825-2a-internalReader_repositioning.diff, derby-3825-2a-internalReader_repositioning.stat,
derby-3825-2b-internalReader_repositioning.diff
>
>
> StoreStreamClob.getReader(charPos) performs poorly because it resets the underlying stream
and skips data until it reached the requested character position. Not only does the data has
to be skipped, it also has to be decoded (UTF-8).
> The problem is exposed through EmbedClob.getSubString, which causes extremely bad performance
for the client driver because the locator based Clob implementation uses this method.
> For the record, there is another read buffer size issue that exaggerates the problem
(it will probably be handled under DERBY-3769, and also DERBY-3818).

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.


Mime
View raw message