Only 1 get_by_keyname, I ever seen a timeout on it.

@Andy : 
http://code.google.com/intl/fr/appengine/docs/java/datastore/transactions.html#What_Can_Be_Done_In_a_Transaction

"All datastore operations in a transaction must operate on entities in
the same entity group."
It is not one kind, sorry. But they must belong to the same entity
group

Regards

On 15 avr, 17:18, 风笑雪 <[email protected]> wrote:
> Maybe you can use entity group, that will makes it simpler.
> fetch(50) will return in 0.1 second, but if you do 50 times get_by_keyname,
> it may timeout.
>
> 2009/4/15 Sylvain <[email protected]>
>
>
>
> > Maybe, but my app needs it. So I will not change it for that.
>
> > And even with 3 entities of 3 different kinds you have to manualy
> > rollback it because a transaction works only with 1 kind. So If the
> > timeout happends on the second write, you have to manually rollback
> > the first put() and it can be very complicated if the number of
> > entites/kinds increases.
>
> > Another thing, you can have a timeout on a a simple get_by_keyname,
> > fetch(50),... etc,... So the number of write is not the only/main
> > issue and a request can wait 30s so it should no be an issue.
>
> > I understand that in order to remove timeout we have to change things
> > but an article that explain what to do and how could be very usefull.
>
> > During the first  "app chat" (long time ago), I've asked for it and it
> > seems the Google team agree with it. So :)
>
> >http://groups.google.com/group/google-appengine/browse_frm/thread/ced...
>
> > Regards.
>
> > On 15 avr, 16:00, 风笑雪 <[email protected]> wrote:
> > > It's not recommend to write more than 20 entities in one request, and I
> > > don't think you will exceed it in a common request.The datastore has such
> > > a limitation of writing, you can't treat it as a relationship db. (In my
> > > test, it takes about 1 second to put 100 simple entities into db.)
>
> > > However, sometimes we may meet this situation.
> > > My suggest is to limit the number of entities as possible, use
> > > "db.run_in_transaction" to keep entities correct and complete saved to
> > db.
> > > If possible, AJAX calls can help you breaks a big transaction into
> > several
> > > small transaction.
> > > And you can set how many times the transaction should try when operation
> > > fails, so you can give a failed message to user before timeout.
>
> > > 2009/4/15 Sylvain <[email protected]>
>
> > > > Hi,
>
> > > > Currently, I think 0.5% of my Datastore operations result in a
> > > > datastore timeout.
> > > > I don't know why... It can be raised on very simple or very
> > > > complicated operation.
>
> > > > For my app for example, the problem is that it can occur during a big
> > > > request where I need to create 50-100 entities of 3 different kinds.
> > > > So I need to manually rollback everything and it can be difficult.
>
> > > > Having a "big" transaction could be a solution, but GAE it too limited
> > > > (only 1 kind,....).
>
> > > > It seems that datastore timeout will always be there and we have to
> > > > manage them. So I think we need an article that explains how to handle
> > > > them properly with different scenarios. It will be very appreciated.
>
> > > > Regards.
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to