Re: Commit performance degradation

From: Cosmin Marian (cosmin.maria..odium-it.com)
Date: Tue Jul 27 2010 - 08:01:14 UTC

  • Next message: Hans Pikkemaat: "Re: Commit performance degradation"

    Thank you very much for the fix.
    I will download the code and put it to work (not waiting for 3.0.1 :) )
    Cosmin

    Andrus Adamchik wrote:
    > 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 : Tue Jul 27 2010 - 08:01:48 UTC