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/04/07 12:40:24 UTC

[jira] Created: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Optimize LOBStateTracker for non-locator servers
------------------------------------------------

                 Key: DERBY-3601
                 URL: https://issues.apache.org/jira/browse/DERBY-3601
             Project: Derby
          Issue Type: Improvement
          Components: Network Client, Newcomer
    Affects Versions: 10.4.1.2, 10.5.0.0
            Reporter: Kristian Waagan
            Priority: Trivial


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.

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


[jira] Commented: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Dag H. Wanvik (JIRA)" <ji...@apache.org>.
    [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12626783#action_12626783 ] 

Dag H. Wanvik commented on DERBY-3601:
--------------------------------------

Changes looks good and understandable to me.

+1

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>         Attachments: derby-3601-1a-comments_and_renaming.diff
>
>
> 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.

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


[jira] Updated: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan updated DERBY-3601:
-----------------------------------

    Fix Version/s: 10.4.2.1

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>             Fix For: 10.4.2.1, 10.5.0.0
>
>         Attachments: derby-3601-1a-comments_and_renaming.diff, derby-3601-2a-non_locator_optimization.diff, derby-3601-2a-non_locator_optimization.stat
>
>
> 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.

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


[jira] Updated: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan updated DERBY-3601:
-----------------------------------

    Attachment: derby-3601-2a-non_locator_optimization.stat
                derby-3601-2a-non_locator_optimization.diff

'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.

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>         Attachments: derby-3601-1a-comments_and_renaming.diff, derby-3601-2a-non_locator_optimization.diff, derby-3601-2a-non_locator_optimization.stat
>
>
> 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.

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


[jira] Updated: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan updated DERBY-3601:
-----------------------------------

    Derby Info:   (was: [Patch Available])

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.

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>         Attachments: derby-3601-1a-comments_and_renaming.diff
>
>
> 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.

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


[jira] Updated: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan updated DERBY-3601:
-----------------------------------

    Attachment: derby-3601-1a-comments_and_renaming.diff

'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.

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>         Attachments: derby-3601-1a-comments_and_renaming.diff
>
>
> 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.

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


[jira] Updated: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan updated DERBY-3601:
-----------------------------------

    Derby Info: [Patch Available]

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>         Attachments: derby-3601-1a-comments_and_renaming.diff
>
>
> 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.

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


[jira] Assigned: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan reassigned DERBY-3601:
--------------------------------------

    Assignee: Kristian Waagan

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>
> 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.

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


[jira] Updated: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan updated DERBY-3601:
-----------------------------------

    Derby Info: [Patch Available]

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>         Attachments: derby-3601-1a-comments_and_renaming.diff, derby-3601-2a-non_locator_optimization.diff, derby-3601-2a-non_locator_optimization.stat
>
>
> 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.

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


[jira] Closed: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan closed DERBY-3601.
----------------------------------


Backported fixes to 10.4 with revision 705502.
Closing issue.

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>             Fix For: 10.5.0.0
>
>         Attachments: derby-3601-1a-comments_and_renaming.diff, derby-3601-2a-non_locator_optimization.diff, derby-3601-2a-non_locator_optimization.stat
>
>
> 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.

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


[jira] Resolved: (DERBY-3601) Optimize LOBStateTracker for non-locator servers

Posted by "Kristian Waagan (JIRA)" <ji...@apache.org>.
     [ https://issues.apache.org/jira/browse/DERBY-3601?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]

Kristian Waagan resolved DERBY-3601.
------------------------------------

       Resolution: Fixed
    Fix Version/s: 10.5.0.0
       Derby Info:   (was: [Patch Available])

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.

> Optimize LOBStateTracker for non-locator servers
> ------------------------------------------------
>
>                 Key: DERBY-3601
>                 URL: https://issues.apache.org/jira/browse/DERBY-3601
>             Project: Derby
>          Issue Type: Improvement
>          Components: Network Client, Newcomer
>    Affects Versions: 10.4.1.3, 10.5.0.0
>            Reporter: Kristian Waagan
>            Assignee: Kristian Waagan
>            Priority: Trivial
>             Fix For: 10.5.0.0
>
>         Attachments: derby-3601-1a-comments_and_renaming.diff, derby-3601-2a-non_locator_optimization.diff, derby-3601-2a-non_locator_optimization.stat
>
>
> 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.

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