Hi Ivan, I heavily use the online developer's guide.
on you matter, you should read all the articles in this serie http://code.google.com/appengine/articles/datastore/overview.html I also deeply recommend the book "Programming Google App Engine" by D. Sanderson: most detailed description of datastore that I know of. Also, check out labs.google.com/papers/bigtable-osdi06.pdf regards didier On Jan 21, 6:38 pm, Ivan <ivdelc...@gmail.com> wrote: > Hi Didier, > > Thanks for the reply. > > Interesting answer, I don't know the intrinsics of the datastore, but > commons sense at least suggests that with a batch put you save the > individual round trips. Plus you save latency when responding to > users, you just enqueue the operation and return. > > Regarding contention - in my case the "news items" belong to different > entity groups, so contention should not increase. But you're right on > that one... in case of entity group contention, it would be a problem. > > By the way what is your source - google blog, video, book? This would > be very useful info, I have only found very scarce information > regarding that topic. > > Thanks, > Ivan > > On Jan 20, 6:39 pm, Didier Durand <durand.did...@gmail.com> wrote: > > > Hi, > > > I don't see how you will save: puts are unitary actions -> they can > > not be optimized like queries for big sets of data. By using a task, > > you will add the cost of saving / starting / running a task to the > > cost of your put operation that you will do anyway. > > > In addition, you may even generate more contentions on the datastore > > servers if your puts go all to the same server. So, more cpus, > > additional contention exceptions to handle, etc... > > > Really, if you puts are spread, I would try to let them so. > > > Spread writes are usually simpler to handle than concentrated ones. > > > Did I miss something ? > > > regards > > didier > > > On Jan 20, 12:18 pm, Ivan <ivdelc...@gmail.com> wrote: > > > > Hi guys, > > > > What is the best way to batch time-non-critical datastore operations? > > > The use case is the following: > > > > In my app users can perform certain actions, which result in news > > > items being generated: 0 - 4 per action, depending on the action. > > > Currently I put them immediately to the datastore in a batch put. What > > > would be much more optimal is to somehow batch them in groups > > > (although they were created in totally different contexts, probably > > > gae instances as well) and persist them as soon as group size > X or > > > time elapsed since group was created > Y mins. My impression is that > > > task queues are a good candidate but at the moment they rather serve > > > to split a big task into smaller ones rather than vice versa. Any > > > suggestions on how to optimize the above problem? > > > > Cheers, > > > Ivan > > -- You received this message because you are subscribed to the Google Groups "Google App Engine for Java" group. To post to this group, send email to google-appengine-java@googlegroups.com. To unsubscribe from this group, send email to google-appengine-java+unsubscr...@googlegroups.com. For more options, visit this group at http://groups.google.com/group/google-appengine-java?hl=en.