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 -~----------~----~----~----~------~----~------~--~---
