Uploaded image for project: 'Derby'
  1. Derby
  2. DERBY-3601

Optimize LOBStateTracker for non-locator servers

    XMLWordPrintableJSON

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Trivial
    • Resolution: Fixed
    • Affects Version/s: 10.4.1.3, 10.5.1.1
    • Fix Version/s: 10.4.2.1, 10.5.1.1
    • Component/s: Network Client
    • Labels:
      None

      Description

      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.

        Attachments

        1. derby-3601-2a-non_locator_optimization.stat
          0.1 kB
          Kristian Waagan
        2. derby-3601-2a-non_locator_optimization.diff
          3 kB
          Kristian Waagan
        3. derby-3601-1a-comments_and_renaming.diff
          8 kB
          Kristian Waagan

          Issue Links

            Activity

              People

              • Assignee:
                kristwaa Kristian Waagan
                Reporter:
                kristwaa Kristian Waagan
              • Votes:
                0 Vote for this issue
                Watchers:
                0 Start watching this issue

                Dates

                • Created:
                  Updated:
                  Resolved: