Hi, I asked once before, but I'm getting some painfully slow requests in my app. Even on queries that I am certain only fetch a few entities, (5-10 max under absolutely worst case circumstances). I also take advantage of memory caching wherever possible, and I have confirmed (via logging) that I'm pulling from the cache. Some requests are taking upwards of 2-3 seconds. And given that my app right now is mostly a web service and not running in a browser, there's quite a few things that are perplexing me. SO I have a few questions:
- I'm running JAX-RS (Jersey), a little Groovy, low level API (no JDO or JPA), and Guice (yep, I'm a Google fanboy). I have identified where Groovy is being slow, and came up with a workaround for that, so I'm not too concerned. - What's a reasonable number of entities I should fetch from the datastore per request? I currently fetch at least one per request to validate a user's login credentials, so no matter what I'm fetching at least one per request. Adding up the numbers in my head, I don't think that - Even with aggressive caching, (all of my data objects get put in memcache), it still behaves rather slowly? What is the penalty speed-wise for using a transaction? I can't use caching with a transaction obviously because I can't be guaranteed any consistency of data. If I start a transaction and and commit it or roll it back and perform no operations in it, what is the penalty? I'm certain this happens in my app, albeit very infrequently. - What's up with queries? They just tend to be really really slow. - I know loading requests are a problem, but I'm not hitting many of those according to the logs, so I can rule those out as being a contributing factor (unless there's something I don't know). I also don't use JSPs, most of it is static. - How much of a performance difference does a bulk fetch/put cost versus a bunch of individual ones? I haven't seen much of a difference, but maybe I'm doing it wrong. - There are zero use cases in my application where more than two users write to the same entity group, except for a counter for which I use sharding offloaded to the task queue. Is there a penalty for many users reading from a single entity group at the same time? Thanks, -- Patrick H. Twohig. Namazu Studios P.O. Box 34161 San Diego, CA 92163-4161 -- You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to google-appeng...@googlegroups.com. To unsubscribe from this group, send email to google-appengine+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en.