Datastore timeout is one of the biggest (and oldest) issue with GAE and mostly because it is random. You can get it on get, put, fetch,... even with few entities.
I hope that soon, datastore timeout will be negligible. Currently, it is not the case. Regards On 17 avr, 09:50, Paul Kinlan <[email protected]> wrote: > Hi, > > I would just like to add myself into this, my app twitterautofollow (twollo) > regularly gets DataStore time outs on puts (in the most part). All my > entities are root entities. > > I did have a thread open on this only a few days ago. > > Paul > > 2009/4/17 Ray Malone <[email protected]> > > > > > I'm seeing random timeouts where there are many seconds or minutes > > between requests and hours before app engine handled the same request > > within 400ms. I hit another one today that will actually cost my > > business, not much but some. My app needs to catch these and I am on > > many pain points. However, I think the timeouts needs addressed. > > > On Apr 16, 7:10 pm, DarkCoiote <[email protected]> wrote: > > > Yes... I've read that... > > > > The problem with using all entities as root is that I'm unable to use > > > transactions as it is... I would have to code a lit bit... although > > > I just found a paper describing a project that seems really good. > > > >http://danielwilkerson.com/dist-trans-gae.html > > > > I think it will be presented this weekend, and I really hope that > > > it goes "public" or even yet plugged to app engine! > > > > Just double-checked my GAE logs, and it seems that I'm getting > > > timeouts in "get" operations as well... multiple requests could cause > > > that too (one get 'over' a put for example)... > > > > Have to check my code.... > > > > Thank you > > > > On Apr 16, 2:10 pm, "Jeff S (Google)" <[email protected]> wrote: > > > > > On Thu, Apr 16, 2009 at 4:16 AM, DarkCoiote <[email protected]> > > wrote: > > > > > > On Apr 15, 3:26 pm, "Jeff S (Google)" <[email protected]> wrote: > > > > > > HiRay, > > > > > > > Which operation was is that timed out (get, query, put)? Also, how > > > > > > consistently are you seeing these timeouts? > > > > > > > I generally recommend catching datastore timeouts and handling them > > in a > > > > > way > > > > > > that makes sense for your app. There are currently occasional > > (quite rare > > > > > as > > > > > > a percentage) timeouts for queries and gets, and timeouts > > > > > > > on a put is often > > > > > > an indicator of contention on that entity or entity group. > > > > > > well... almost (if not all) of the timeouts I'm seeing are on 'put' > > > > > operations... > > > > > but contention would need, like, 2 or more operations on the same > > > > > entity > > > > > (all my entities are roots... stupid, I know ), right? > > > > > Actually, making most of your entities roots is often better than deep > > > > ancestor trees in terms of overall write throughput. In a transactional > > > > write a entity is updated which has a parent entity, the ancestors are > > > > locked. So if nearly concurrent requests update different entities > > which all > > > > share a common ancestor (in other words the entities are in the same > > entity > > > > group), some of the child entity updates could fail due to contention > > on > > > > writes. There are more details here in the documentation: > > > > >http://code.google.com/appengine/docs/python/datastore/keysandentityg. > > .. > > > > > """ > > > > Tips for using entity groups: > > > > > - Only use entity groups when they are needed for transactions. For > > other > > > > relationships between entities, use ReferenceProperty properties and > > Key > > > > values, which can be used in queries. > > > > > - The more entity groups your application has—that is, the more root > > > > entities there are—the more efficiently the datastore can distribute > > the > > > > entity groups across datastore nodes. Better distribution improves the > > > > performance of creating and updating data. Also, multiple users > > attempting > > > > to update entities in the same entity group at the same time will cause > > some > > > > users to retry their transactions, possibly causing some to fail to > > commit > > > > changes. Do not put all of the application's entities under one root. > > > > > - A good rule of thumb for entity groups is that they should be about > > the > > > > size of a single user's worth of data or smaller. > > > > > - Entity groups do not have a significant impact on the speed of > > queries. > > > > """ > > > > > If your entities are roots, then yes contention could occur if the same > > > > entity were updated by overlapping requests. > > > > > Thank you, > > > > > Jeff > > > > > > I'll check for bugs that could cause multiples requests and stuff > > like > > > > > that.... > > > > > > Thank you > > > > > > > Happy coding, > > > > > > > Jeff > > > > > > > On Mon, Apr 13, 2009 at 4:11 PM, DarkCoiote <[email protected]> > > > > > wrote: > > > > > > > > Looks like my and others problem... posted a few days ago: > > >http://groups.google.com/group/google-appengine/browse_thread/thread/. > > > > > .. > > > > > > > > Random datastore timeouts in totally unexpected places... > > > > > > > > On Apr 13, 2:36 pm,RayMalone <[email protected]> wrote: > > > > > > > > I'm not sure why this occurs all of a sudden. The same job > > runs in > > > > > > > > 600ms. Then once in a while this runs over 6800 MS and times > > out. > > > > > > > > I can't have jobs just timeout for no reason. According to > > my logs > > > > > > > > during this time the only other request was a second prior. > > This > > > > > > > > occurred at 04-13 09:13AM 29.627 today and other times at > > random in > > > > > > > > the last few days. --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [email protected] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
