Re: Commit performance degradation

From: Andrus Adamchik (andru..bjectstyle.org)
Date: Fri Jul 23 2010 - 11:51:49 UTC

  • Next message: Mark Fraser: "Problem selecting new data object in combo box using DOComboBoxModel"

    Hi Cosmin,

    Thanks a lot for letting us know about the problem and for filing a
    Jira. I was able to reproduce it and even create a pretty chart in
    OpenOffice showing smooth linear slowdown. There was a piece of code
    in the ObjectStore with O(N) performance. Interestingly at the time
    when this code was written, I vaguely recall considering it a
    "performance optimization" :-)

    Anyways, I will commit a fix for 3.0 and 3.1 shortly. It will be
    included in the upcoming 3.0.1. My new chart is showing constant
    performance (even with a slight improvement as the number of objects
    goes up, probably due to HotSpot).

    Andrus

    On Jul 23, 2010, at 10:31 AM, Andrus Adamchik wrote:

    > I was going to take a look at this in any event, but feel free to
    > open a Jira. This will help to track it indeed.
    >
    > I wrote applications with Cayenne that insert millions of rows.
    > There's always some tweaking involved with high-end cases no matter
    > which framework you use.
    >
    > Andrus
    >
    >
    > On Jul 23, 2010, at 10:11 AM, Cosmin Marian wrote:
    >> Hello,
    >>
    >> I didn't have time to investigate this, mostly because I was busy
    >> moving parts of our persistence layer to openjpa (which is a pain
    >> to make work).
    >> Our server can make millions of insert per day so this problem
    >> prevents us from using Cayenne.
    >> When I will have some time I will try to debug it but meanwhile I
    >> was wondering if this at least was added as a bug so it will
    >> receive attention latter.
    >>
    >> Thanks,
    >> Cosmin
    >>
    >>
    >>
    >> Andrus Adamchik wrote:
    >>> You may try to compare profiles of individual loop runs. I.e. same
    >>> code, but different value of "i" and see where they differ.
    >>>
    >>> Andrus
    >>>
    >>>
    >>> On Jul 14, 2010, at 2:53 PM, cosmin.maria..odium-it.com wrote:
    >>>
    >>>> Hello,
    >>>>
    >>>> Yes, I am on Cayenne 3.0 release.
    >>>>
    >>>> I profiled the test but got a bit lost. Eclipse profiler is not
    >>>> very easy
    >>>> to use and cayenne is quite complex.
    >>>>
    >>>> From what I have seen, ObjectStore.postprocessAfterCommit() takes
    >>>> a lot of
    >>>> time.
    >>>>
    >>>> Actually, from my two tests (I set the relation -> slow, I don't
    >>>> set it ->
    >>>> constant time) I noticed that postprocessAfterCommit() takes much
    >>>> more
    >>>> time in the first case.
    >>>>
    >>>> If you have an idea on what to look for in a profile or for a
    >>>> better test,
    >>>> let me know, I will do the tests.
    >>>>
    >>>> Thanks,
    >>>> Cosmin
    >>>>
    >>>> Andrus Adamchik wrote:
    >>>>> This is odd indeed. Are you on Cayenne 3.0?
    >>>>>
    >>>>> I am not aware of this issue. All operations involved are
    >>>>> constant time
    >>>> ops regardless of the number of objects previously cached (such
    >>>> as entry
    >>>> lookup in a HashMap or a list.add(..) operation).
    >>>>>
    >>>>> So I may try to run this code in profiler to see why it is
    >>>>> slowing down.
    >>>> If you have access to a profiler and willing to profile it
    >>>> yourself,
    >>>> this will help a lot of course :-)
    >>>>>
    >>>>> Andrus
    >>>
    >>>
    >>
    >>
    >
    >



    This archive was generated by hypermail 2.0.0 : Fri Jul 23 2010 - 11:52:27 UTC