To expand on an idea mentioned earlier: You can invalidate the memcache when making the write, then immediately launch a deferred task to rebuild the cache. So unless you need to read instantly after writing, this can improve perceived performance. Another trick is to convert objects to protobufs when saving and retrieving. Nick's blog has an article on this: http://blog.notdot.net/2009/9/Efficient-model-memcaching
Also, do you need the entire entities? Or just some data from the entities? You might be able to distill the essential information into a list before putting to memcache. This would decrease the serialize/ deserialize cost that Nick writes about. johnP On May 9, 1:35 pm, nickmilon <[email protected]> wrote: > I like the way you described it: "AppEngine is not a > platform of "just recompile". You need to rewrite" > It tells it all in very few words. > ;-) > > On May 9, 5:15 pm, djidjadji <[email protected]> wrote: > > > > > > > I don't think retrieving 1000 or 2000 objects/rows from an SQL > > database is considerably faster then the distributed approach of > > Bigtable. > > The main problem of the question was that the time for a retrieve > > request was taking too long. One way of solving this is chopping it in > > pieces and do it in parallel, just like MapReduce. > > > I'm not telling that every app can be implemented on AppEngine, but > > many can if you drop the RDBMS way of doing. AppEngine is not a > > platform of "just recompile". You need to rewrite. > > > 2010/5/9 Jaroslav Záruba <[email protected]>: > > > > You might call me a heretic, but maybe this is a situation when > > > AppEngine simply is not the answer...? > > > I'm asking this myself couple of days now, is there any kind of > > > application > > > we would admit of that is not suited for AppEngine? > > > > On Sun, May 9, 2010 at 3:16 PM, djidjadji <[email protected]> wrote: > > > >> Maybe you can use the client side of the process. > > >> Write a piece of Javascript that uses Ajax calls to perform multiple > > >> requests simultaneous (Ajax=asynchronous) that each retrieve part of > > >> the objects (there should be some range on the 'the_order' field, chop > > >> it in pieces). Return XML or Jason for the objects found. > > >> Combine the results of these queries and construct the webpage client > > >> side or by sending the whole bunch to the server in another Ajax call. > > > -- > > 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 > > athttp://groups.google.com/group/google-appengine?hl=en. > > -- > 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 > athttp://groups.google.com/group/google-appengine?hl=en. -- 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.
