Hello Rud, My very limited knowledge of the way the persistence layers works seems to indicate that the Big Tables tracks everything as name-value pairs so the cost of every persisted object would include literally every parameter name.
You might want to check out the writings in the Gae Java Persistence Blog. Your idea with having multiple version'd entities per object could also be impacted by the way indexing works. Specifically http://gae-java-persistence.blogspot.com/2009/11/unindexed-properties.html Did you know that, by default, the App Engine Datastore writes two index > records for every entity property that isn't a > com.google.appengine.api.datastore.Blob or a > com.google.appengine.api.datastore.Text? It's true! These index records > allow you to execute a variety of queries involving the property without > creating a composite index. > > Now, these index records don't come for free. They take time to write and > they take up space on disk. If you have a property that you're absolutely > positively sure you'll never want to filter or sort by, you can opt-out of > the default indexing that is going on.... > -- Stevko On Sun, Oct 17, 2010 at 9:07 PM, Rud <[email protected]> wrote: > My app has a UserProfile class (entity) with many fields. These are > your typical user demographics - age, marital status, etc. Over time > users will change the fields, i.e. get married or divorced. > > I need to keep a history of changes. I am wondering if creating > another entity of the entire class containing only the data in the > changed field would be efficient. Ignore the mechanics of tracking how > the new entity relates to the old since I think that is just detail > chasing. > > The question is whether the new entity with only a single field > populated is only the size of that field, or nearly so. Or is the > stored entity have a default field for every field in the entity, > basically making it as large as the original entity. > > The other approach would be to keep a name-value pair containing the > change in a 'delta' entity. > > Which would be more efficient in the datastore? > > Rud > http://www.mysticlakesoftware.com > > -- > 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 > [email protected]. > To unsubscribe from this group, send email to > [email protected]<google-appengine-java%[email protected]> > . > 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 [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-java?hl=en.
