to build a scalable schema on GAE I'd consider this agile/tracer bullet approach: 1 identify your most common couple of use cases eg building home page, list friends, etc 2 implement it from front end to back end using keyed reads over queries where possible 3 add new features without breaking the speed of your top use cases
use background tasks to propagate updates to denormalized data where needed. consider slim3 dao for global transactions to keep your model consistant mike On Aug 5, 8:06 pm, Jeff Schnitzer <j...@infohazard.org> wrote: > On Fri, Aug 5, 2011 at 11:45 AM, William Levesque > > <billleves...@gmail.com> wrote: > > > But is Google's position that all data should be denormalized? > > I don't think anyone would say that. I wrote up my thoughts around > this subject here: > > http://blog.similarity.com/post/7541938593/how-to-build-an-online-dat... > > The upshot is that we've been conditioned by SQL theorists to believe > that there is a "proper" way of modeling data; that the data itself > defines the schema and the magic of the RDBMS behind the curtain makes > it fast. Unfortunately, this is a lie. It worked to a point but the > traffic demands of a mass consumer application have vastly outstripped > the RDBMS. You're back to figuring out how to optimize your schema > for your particular query profile. > > So the answer is not "denormalize everything", it's "denormalize the > right things". And "the right things" will vary from application to > application. You just have to build up a correct mental model of how > the datastore performs and then design your application accordingly. > > Jeff -- 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.