Thanks Murph. That explanation was dead-on and I couldn't have written a better one myself!
You can't just update one "column". You're still thinking in RDBMS mode. There is no concept of a column, since to update a property, we need to read the entire entity, deserialize it (it's serialized as protobuf; at its lowest layer BigTable is a key-value store), change the property, reserialize the entire entity and write it. -- Ikai Lan Developer Programs Engineer, Google App Engine plus.ikailan.com | twitter.com/ikai On Tue, Oct 11, 2011 at 2:38 PM, Murph <paul.j.mu...@googlemail.com> wrote: > You can't update just a single property/attribute of an entity unless you > already know the values for all of the others. If it's frequently updated, > careful use of memcache may allow you to avoid the db.get, but otherwise you > have to read it first. > > An alternative, if you just have say 1 property/attribute which changes > often would be to split the entity into two separate entity models, one with > the relatively static data, and the other with the frequently changing > data. The downside there, of course, is that you're going to have 2 db.get > operations when you need all of it, instead of 1. > > Internally, the datastore is entirely composed of (key, value) pairs, with > a single (key,value) per entity (not counting indices, metadata, etc), and > the SDK encodes/decodes those values into your entity models for you. They > are actually encoded as protobufs, but there's nothing in the datastore's > API to modify that data without reading it first. > > -- > You received this message because you are subscribed to the Google Groups > "Google App Engine" group. > To view this discussion on the web visit > https://groups.google.com/d/msg/google-appengine/-/e6JrqffTES4J. > > 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. > -- 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.