If you design it right you can benefit from strong consistency in the
situations you need it while still not hitting the 1 write/sec/group
cap, see the Google IO talk about it (in particular the user centric
design):
http://www.youtube.com/watch?v=xO015C3R6dw

And the slides of the talk:
http://static.googleusercontent.com/external_content/untrusted_dlcp/www.google.com/en/us/events/io/2011/static/presofiles/more_9s_under_the_covers_of_the_high_replication_datastore.pdf

As described in that talk, you want strong consistency in particular
for a user's own posts (i.e. it's annoying as a user if you post and
don't see your own post right away..)

Cheers,
Gabriel

On Oct 22, 3:16 pm, Mos <mosa...@googlemail.com> wrote:
> I'm still in a design phase of a new App Engine application and I'm
> wondering
> if it makes sense to go *without* using any Entity Groups.
>
> My application's data-model is similar to a discussion-forum.
> It has Postings, Comments, Users, Ratings and so on. If the application
> becomes successful,  there will be significant write operations on
> Postings, Comments and Ratings.
>
> If I would model hierarchical *Entity-Groups* (e.g. starting from a
> User-Root), I would
> have the following *advantages*:
> +1:   Transactional behavior during writes
> +2:   Queries are strongly consistent
> +3:   For hierachical data-structures, fast ancestor queries are available
>
> But *Entity-Groups* introduce also some *disadvantages*:
> -1:   Limitation in write throughput   (in worst case just 1 write per
> second on an entity group)
> -2:   Inflexible and a more complex data-model, which makes it harder to add
> or re-factor relationships  (forces "owned-relations" all over your
> application)
>
> *I think all together the disadvantages outweigh the advantages for a
> typical web application like mine.*
> The limitation for writes seems to be a significant disadvantage. Ok, you
> can work around this with sharding but this makes
> you data-model even more complex.
> And an hierarchical data-model which is technically motivated and not
> related to your domain seems to be a bad idea.
>
> On the other hand transactions during write operations are often not
> necessary ("the last one wins").
> Hierarchical searches are not needed most of the time.
>
> The only issue I'm not sure about is the advantage of "Queries are strongly
> consistent "?
> What does it mean if they are not strongly consistent?
> Is this just an issue for a small time frame when new data are written? Once
> the data is
> stored and replicated this shouldn't be an issue at all, or?
>
> I'm happy about feedback!
>
> Thanks
> Mos

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine" group.
To post to this group, send email to google-appengine@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine?hl=en.

Reply via email to