You are viewing a plain text version of this content. The canonical link for it is here.
Posted to derby-dev@db.apache.org by "Kristian Waagan (JIRA)" <ji...@apache.org> on 2008/10/22 15:49:44 UTC
[jira] Created: (DERBY-3918) Improve transfer buffer utilization
for Clobs
Improve transfer buffer utilization for Clobs
---------------------------------------------
Key: DERBY-3918
URL: https://issues.apache.org/jira/browse/DERBY-3918
Project: Derby
Issue Type: Improvement
Components: JDBC, Network Server
Affects Versions: 10.5.0.0
Reporter: Kristian Waagan
Priority: Minor
Read DERBY-3769 for details.
Briefly, for Clobs containing ASCII characters the content is sent over the network in smaller chunks than necessary. The reason is because the network server is unaware of how many bytes a range of characters results in when they are encoded as modified UTF-8. As exceeding the maximum size is very costly, a defensive assumption of 3 bytes per char is used. This leads to sending only 10890 bytes over the wire per round-trip instead of up to 32672 for ASCII content.
The same goes for Clobs with chars encoded by 2 bytes, or Clobs with mixed content.
A few ideas on how to solve this:
- read chars in chunks, look at each char to calculate byte length and read chars until byte buffer will be filled sufficiently
- add new method to Engine[C]LOB
- rewrite implementation to work on the byte level instead of the character level (this would be an internal API only)
- add and make use of more information about the Clob content, i.e. if it consists of only 1 byte per char encodings.
--
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.