OpenJPA
  1. OpenJPA
  2. OPENJPA-1151

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

    Details

    • Type: Improvement Improvement
    • Status: Closed
    • Priority: Trivial 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
        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
        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
        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
        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
        Jody Grassel added a comment -

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

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

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

        Show
        Jody Grassel added a comment - Updated tests, based off of the HEAD release of trunk.
        Hide
        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
        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
        Donald Woods added a comment -

        Trunk tests applied as r814807.

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

        patch caused some test regressions on MySQL and Oracle

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

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

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

          People

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

            Dates

            • Created:
              Updated:
              Resolved:

              Development