Uploaded image for project: 'OpenJPA'
  1. OpenJPA
  2. OPENJPA-1151

Cache the current-time timestamp in AbstractQueryCache.onTypesChanged()

    Details

    • Type: Improvement
    • Status: Closed
    • Priority: Trivial
    • Resolution: Fixed
    • Affects Version/s: 1.3.0, 2.0.0
    • Fix Version/s: 1.3.0, 2.0.0-M3
    • Component/s: jdbc
    • Labels:
      None
    • Patch Info:
      Patch Available

      Description

      AbstractQueryCache.java contains the following block:

      for (Object o: changedTypes)

      { String name = ((Class) o).getName(); if(!changedClasses.containsKey(name)) changedClasses.put(name, new Long(System.currentTimeMillis())); }

      Suggesting caching the Long containing the entity type's last-modification timestamp outside of the for-loop to improve performance and reduce memory usage.

      1. OpenJPA-trunk-JIRA1151.patch
        20 kB
        Jody Grassel
      2. OpenJPA-trunk-JIRA1151-tests.patch
        20 kB
        Jody Grassel

        Activity

        Hide
        fyrewyld Jody Grassel added a comment -

        Added a patch that caches the Long containing the current time used for cataloging when an entity type is modified for the timestamp query cache eviction policy.

        Added more testing for default and timestamp query cache eviction policies.

        Show
        fyrewyld Jody Grassel added a comment - Added a patch that caches the Long containing the current time used for cataloging when an entity type is modified for the timestamp query cache eviction policy. Added more testing for default and timestamp query cache eviction policies.
        Hide
        mikedd Michael Dick added a comment -

        I'm not sure about the testcases included in the patch - they didn't merge cleanly for me. I have committed the timestamp caching portion of the fix though.

        Show
        mikedd Michael Dick added a comment - I'm not sure about the testcases included in the patch - they didn't merge cleanly for me. I have committed the timestamp caching portion of the fix though.
        Hide
        fyrewyld Jody Grassel added a comment -

        It looks like the class TestQueryTimestampEviction had changed since r708980. I'll make the necessary adjustments and resubmit.

        Show
        fyrewyld Jody Grassel added a comment - It looks like the class TestQueryTimestampEviction had changed since r708980. I'll make the necessary adjustments and resubmit.
        Hide
        fyrewyld Jody Grassel added a comment -

        Updated tests, based off of the HEAD release of trunk.

        Show
        fyrewyld Jody Grassel added a comment - Updated tests, based off of the HEAD release of trunk.
        Hide
        drwoods Donald Woods added a comment -

        Code patch already applied by Mike on June 30th to 1.3.x and trunk. Only testcase updates need to be applied now.

        Show
        drwoods Donald Woods added a comment - Code patch already applied by Mike on June 30th to 1.3.x and trunk. Only testcase updates need to be applied now.
        Hide
        drwoods Donald Woods added a comment -

        Trunk tests applied as r814807.

        Show
        drwoods Donald Woods added a comment - Trunk tests applied as r814807.
        Hide
        drwoods Donald Woods added a comment -

        patch caused some test regressions on MySQL and Oracle

        Show
        drwoods Donald Woods added a comment - patch caused some test regressions on MySQL and Oracle
        Hide
        drwoods Donald Woods added a comment -

        test failures on other dbs fixed by Fay with r815366 and r815369.

        Show
        drwoods Donald Woods added a comment - test failures on other dbs fixed by Fay with r815366 and r815369.

          People

          • Assignee:
            drwoods Donald Woods
            Reporter:
            fyrewyld Jody Grassel
          • Votes:
            0 Vote for this issue
            Watchers:
            0 Start watching this issue

            Dates

            • Created:
              Updated:
              Resolved:

              Development