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.

Reply via email to