Re: Memory Management using Tomcat

From: Joe Baldwin (jfbaldwi..arthlink.net)
Date: Fri Sep 18 2009 - 00:10:54 EDT

  • Next message: Aristedes Maniatis: "Re: Memory Management using Tomcat"

    Ari,

    thanks for the YourKit suggestion.

    > Also, consider a common approach is to have one 'read-only' [1]
    > shared context which persists for the life of the application and is
    > used to show data (products, etc) to users. Then a small context
    > created per session which contains just the objects which that user
    > is modifying (invoice, invoice lines, payment, contact, etc) within
    > the session. Certainly that isn't the only approach, but it is
    > pretty common.

    That is pretty much what I was wanting to do (after listening to all
    the input). However, I am not sure how to implement this design in a
    webapp with session and a Cayenne filter that is creating the
    DataContext for me (automagically as they say).

    I suspect if I implement this sort of simple design (as about 95% of
    the result sets will be "read-only"), I could probably manage the
    memory much better.

    So how do I create a shared context? Is this going to be associated
    with an Application scoped singleton? Also how do I create the smaller
    contexts and make sure they are GC'd after the session is terminated?

    Thanks for the input,
    Joe

    On Sep 17, 2009, at 11:53 PM, Aristedes Maniatis wrote:

    > To remove some of the black magic can I suggest a tool like YourKit?
    > It is very helpful for figuring out where all your memory goes.
    >
    > Also, consider a common approach is to have one 'read-only' [1]
    > shared context which persists for the life of the application and is
    > used to show data (products, etc) to users. Then a small context
    > created per session which contains just the objects which that user
    > is modifying (invoice, invoice lines, payment, contact, etc) within
    > the session. Certainly that isn't the only approach, but it is
    > pretty common.
    >
    > Ari Maniatis
    >
    >
    > [1] There is no such thing as a 'read-only' context in Cayenne. Read-
    > only just describes the way you use it.
    >
    >
    >
    > On 18/09/09 4:53 AM, Michael Gentry wrote:
    >> That's probably bigger than you want. Try 500 just to see how it
    >> works. Adjusting that number is black magic. :-)
    >>
    >>
    >> On Thu, Sep 17, 2009 at 2:40 PM, Joe
    >> Baldwin<jfbaldwi..arthlink.net> wrote:
    >>> Michael
    >>>
    >>>> What is the size of your object cache? Look under the
    >>>> DataDomain. If
    >>>> it is a large number, try lowering it.
    >>>
    >>>
    >>> Query Cache Factory: org.apache.cayenne.cache.MapQueryCacheFactory
    >>> Size of Object Cache: 10000
    >>> Use Shared Cache: checked
    >>>
    >>> I do not know if 10,000 is small, medium, or large.
    >>>
    >>> What do you recommend?
    >>>
    >>> Joe
    >>>
    >>>
    >
    > --
    >
    > -------------------------->
    > Aristedes Maniatis
    > GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A



    This archive was generated by hypermail 2.0.0 : Fri Sep 18 2009 - 00:11:32 EDT