Issue Details (XML | Word | Printable)

Key: DERBY-3601
Type: Improvement Improvement
Status: Closed Closed
Resolution: Fixed
Priority: Trivial Trivial
Assignee: Kristian Waagan
Reporter: Kristian Waagan
Votes: 0
Watchers: 0
Operations

If you were logged in you would be able to see more operations.
Derby

Optimize LOBStateTracker for non-locator servers

Created: 07/Apr/08 10:38 AM   Updated: 29/Jun/09 01:13 PM
Return to search
Component/s: Network Client
Affects Version/s: 10.4.1.3, 10.5.1.1
Fix Version/s: 10.4.2.1, 10.5.1.1

Time Tracking:
Not Specified

File Attachments:
  Size
File Licensed for inclusion in ASF works derby-3601-1a-comments_and_renaming.diff 2008-08-27 01:42 PM Kristian Waagan 8 kB
File Licensed for inclusion in ASF works derby-3601-2a-non_locator_optimization.diff 2008-09-01 10:55 AM Kristian Waagan 3 kB
File Licensed for inclusion in ASF works derby-3601-2a-non_locator_optimization.stat 2008-09-01 10:55 AM Kristian Waagan 0.1 kB
Issue Links:
Reference
 

Resolution Date: 02/Oct/08 03:30 PM


 Description  « Hide
The following comments posted for DERBY-3571 should be addressed if we choose to allow multiple calls to the various getter methods on LOB columns, except for the getter methods returning streams:
----- Knut Anders wrote:
've tried out the 2a patch and it seems to work as intended. My only nits are:

  - LOBStateTracker.checkCurrentRow(): couldn't Arrays.fill() be moved inside the if block?
  - should discardState() and markAccessed() check the release flag?
  - should ResultSet.createLOBColumnTracker() use LOBStateTracker.NO_OP_TRACKER instead of allocating a new when serverSupportsLocators() returns false?
-----

Note that it is a requirement that we allow multiple calls to the getter methods, otherwise we need to maintain the state for non-locator LOB columns as well to track the number of accesses. Another options is to rely on a different mechanism to track accesses.

 All   Comments   Work Log   Change History   Subversion Commits      Sort Order: Ascending order - Click to sort in descending order
Kristian Waagan added a comment - 27/Aug/08 01:42 PM
'derby-3601-1a-comments_and_renaming.diff' changes some of the comments in LOBStateTracker and renames variables and methods to better reflect reality.
I think when it was first written it was supposed to take care of more than it does today. Currently, the class is only used to track whether a LOB has been published to the end-user or not (happens through ResultSet.get[BC]lob).
There shouldn't be any functional changes in patch 1a.

The next step is to implement the improvements suggested under this issue.
Patch ready for review.

Dag H. Wanvik added a comment - 28/Aug/08 11:04 PM
Changes looks good and understandable to me.

+1

Kristian Waagan added a comment - 29/Aug/08 07:11 AM
Thank you for the review, Dag!

I committed 'derby-3601-1a-comments_and_renaming.diff' to trunk with revision 690133.
I expect another patch to be ready soon.

Kristian Waagan added a comment - 01/Sep/08 10:55 AM
'derby-3601-2a-non_locator_optimization.diff' implements the suggested optimizations.
suites.All ran without failures on Solaris 10 with JDK 1.6.0.

Patch ready for review.

Kristian Waagan added a comment - 02/Oct/08 03:30 PM
Committed patch 2a to trunk with revision 701156.
I'll leave the issue open for a while and backport it if no problems are detected.

Kristian Waagan added a comment - 17/Oct/08 07:52 AM
Backported fixes to 10.4 with revision 705502.
Closing issue.