I was unclear in my last point: real world performance should be above 1 transaction per second, but you should engineer your entity group writes with an expectation of 1 transaction/second for best results.
-- Ikai Lan Developer Programs Engineer, Google App Engine Blogger: http://googleappengine.blogspot.com Reddit: http://www.reddit.com/r/appengine Twitter: http://twitter.com/app_engine On Sat, Oct 23, 2010 at 1:53 AM, nicanor.babula <nicanor.bab...@gmail.com>wrote: > Acually, I forgot about the fact that while a transaction is going on, > all entities involved are locked. Therefore, I considered changing my > database structure in order to get more, but smaller entity groups > (every parentEntity will have at most 20-30 childs). That way, will be > easier and faster to use transactions. > > On 22 Ott, 19:54, "Ikai Lan (Google)" > <ikai.l+gro...@google.com<ikai.l%2bgro...@google.com> > > > wrote: > > Cyrille is right: have an expectation of 1 transaction/second, though > real > > world performance should be below this. App Engine favors a model of > > eventual consistency. You don't get to scale by locking a ton of entities > at > > once. > > > > -- > > Ikai Lan > > Developer Programs Engineer, Google App Engine > > Blogger:http://googleappengine.blogspot.com > > Reddit:http://www.reddit.com/r/appengine > > Twitter:http://twitter.com/app_engine > > > > > > > > On Fri, Oct 22, 2010 at 3:54 AM, Cyrille Vincey <crll...@gmail.com> > wrote: > > > From my experience : I do NOT expect a better write performance than 1 > > > transaction/second when creating entities inside one given entity group > > > (with 1 entity created in each transaction). > > > > > In your case : if dataset creation is an offline process, you can rely > on > > > entity groups and parent/child data modelling, no matter how many child > > > entities you want to store. But you will have to expect high datastore > > > contention level. > > > > > My suggestion : in your data model design, only use parent/child design > > > when transactional features are REALLY required. > > > If transactional requirement are not so high, prefer to break your data > > > model into smaller entity groups. > > > > > On 21/10/10 17:00, "nicanor.babula" <nicanor.bab...@gmail.com> wrote: > > > > > >Thank you all for your responses. > > > >@alesj > > > >No, I am not confusing entity "group" with the actual entities stored > > > >in the datastore. > > > > > >@Ian Marshall > > > >Actually no, because I already did that kind of analysis. > > > > > >I have to use transactions in order to maintain data consistency and > > > >therefore I have to define the right entity groups. I already thought > > > >of a solution, just that I have read in the docs that is not > > > >recommended to put too many entities in an entity group. So: What is > > > >the number of child entities a parent entity can have, past which the > > > >datastore becomes slow? Hundreds? Thousands? Millions? > > > >I also understand that all entities in an entity group are stored on > > > >the same node of the datastore's distributed system and therefore I > > > >understand that if the number of entities an entity group has is too > > > >big, the queries will become slow, because will be processed by a > > > >single node. Right? > > > >Again: Which is that number? > > > > > >Thanks and sorry if I bored you with my long email. ;) > > > > > >On 21 Ott, 14:59, Ian Marshall <ianmarshall...@gmail.com> wrote: > > > >> How about my comments below? > > > > > >> > http://www.google.com/url?url=http://groups.google.com/g/f907f736/t/f. > > > .. > > > > > >> Do they help you? > > > > > >> On Oct 20, 6:39 pm, "nicanor.babula" <nicanor.bab...@gmail.com> > wrote: > > > > > >> > Hi everbody, > > > > > >> > I have a question regarding the datastore best-practices. > > > > > >> > The appengine's official documentation says that is not a good > > > >> > practice to put too many entities in the same entity group. What > does > > > >> > "too many" mean in this case? Hundreds? Thousands? Milions? > > > > > >> > Thanks in advance, > > > >> > Cristian Babula. > > > > > >-- > > > >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-j...@googlegroups.com. > > > >To unsubscribe from this group, send email to > > > >google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com><google-appengine-java%2 > bunsubscr...@googlegroups.com> > > > . > > > >For more options, visit this group at > > > >http://groups.google.com/group/google-appengine-java?hl=en. > > > > > -- > > > 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-j...@googlegroups.com. > > > To unsubscribe from this group, send email to > > > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com><google-appengine-java%2B > unsubscr...@googlegroups.com> > > > . > > > For more options, visit this group at > > >http://groups.google.com/group/google-appengine-java?hl=en. > > -- > 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-j...@googlegroups.com. > To unsubscribe from this group, send email to > google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com> > . > For more options, visit this group at > http://groups.google.com/group/google-appengine-java?hl=en. > > -- 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-j...@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.