There are some unanswered questions about datastore that I still have and occasionally crop up on the message board. This thread is an attempt to brain dump and outline areas we could use more info. If you've run into questions about datastore and don't see it on this list, please add to the thread. Please don't put questions on this thread that are easily answered by the docs. Instead we want questions that only Google can answer or that we, as a community, can step up and answer ourselves (like benchmarking).
Here's my initial brain dump: 1) Will timeout issues on put/transactions be removed when we go pay- as-you-go or should we develop production apps with these limits in mind? Exact # of puts or transactions you can reasonably expect to work within one request before quota issue. 2) Best practices for robustly handling datastore exceptions due to App Engine maintenance/issues with least impact on users, e.g. DeadlineExceededError (increased latency) and CapabilityDisabledError (maintenance shut down of certain datastore functions). 3) Best practices for (de)normalization and entity sizes. A gut reaction some developers might take when approaching datastore is to denormalize and put stuff in fewer tables. What are the costs of keeping many small entities and using reference properties instead? For example, in a many-to-many relationship, we could have 3 Kinds: A, B, and join(A,B). This is just like a traditional relational DB with a join model. What are the costs of traversing implicit collection sets defined by the reference properties in the join Kind? If you have a limited relationship between two entities, when does using a ListProperty (of keys, for example) make sense, especially in light of the cap on indexed properties per entity? 4) Benchmarks! I've been meaning to run tests on costs for different datastore operations: - Direct get using key or id - Direct get using list of key/id - Fetches using filters - Iterative get from a query - How the above 3 (direct w/ key, bulk fetch, iterative get) scale with request size. - Delete/Put - The big hit using transactions Is it a big win to come up with a good key naming scheme or does that bite you in other ways? --~--~---------~--~----~------------~-------~--~----~ You received this message because you are subscribed to the Google Groups "Google App Engine" group. To post to this group, send email to [email protected] To unsubscribe from this group, send email to [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---
