Re: [appengine-java] Re: JDO Relationship Performance Problems - what am I doing wrong?

2010-04-07 Thread Matt Hall
I'd say the average number of line items is around 100. So, the slowest request (but also the most common) is to show the 5 most recent items from all recent user orders. In JDO, I was doing that via a query for the orders, then a order.getItems() for each, then iterating in reverse for a few

[appengine-java] Re: JDO Relationship Performance Problems - what am I doing wrong?

2010-04-07 Thread datanucleus
I think if I were to do it all over again I'd either embed the items right in the order, or not use JDO at all and try to do some more manual caching and batch loading. A lot of time was spent learning how JDO was loading the items collection and then trying to get JDO to cache that

Re: [appengine-java] Re: JDO Relationship Performance Problems - what am I doing wrong?

2010-04-07 Thread Matt Hall
Ah, that's interesting. From what I could tell via appstats during my requests, in my 1-N relationship the L2 cache was only caching the individual objects, not the entire collection. So, two accesses of the same collection in two subsequent requests would require a round trip to the memcache for

[appengine-java] Re: JDO Relationship Performance Problems - what am I doing wrong?

2010-04-06 Thread Matt Hall
Thanks for the response, could you point me to somewhere where I can read about batched queries by key in JDO? Or do I need to go to the low level API for that? I think the conclusion I'm coming to here is 1) I shouldn't have made the detail for each order as a separate object, (although this has

[appengine-java] Re: JDO Relationship Performance Problems - what am I doing wrong?

2010-04-06 Thread Steve Pritchard
Before proposing a solution, what is your expected active user base. 1000's or 1,000,000s or something in between. Steve On Apr 6, 3:50 pm, Matt Hall matt.h...@gmail.com wrote: Thanks for the response, could you point me to somewhere where I can read about batched queries by key in JDO? Or do I

Re: [appengine-java] Re: JDO Relationship Performance Problems - what am I doing wrong?

2010-04-06 Thread Jeff Schnitzer
The most important number in my mind is the number of line items in an order. If you're seeing 20s+ queries, it must be a pretty large number. Objectify (and Twig) support queryable collections of embedded objects, so you can put all the line items in a single order object. There are some