Thanks Vince, for clarrifying this up!

2009/11/25 Vince Bonfanti <[email protected]>

> Again, my apologies for being so late to respond to this thread. There are
> many good questions here, and I'm going to try to respond to them in the
> order they were posted.
>
> To this first question, my answer is: yes, when you want to update an
> object you should first read it from the datastore, update it, then write it
> back to the datastore. The GAE datastore is optimized to be very fast when
> reading, especially when doing key-based lookups as in your example. (In
> general, when designing applications for GAE you should keep in mind that
> it's optimized for reading, which means writes are relatively expensive. You
> should design your applications to minimize datastore writes. Having said
> that, I've implemented a write-behind cache that greatly reduces the
> performance impact of datastore writes, which will be added to OpenBD/GAE
> soon).
>
> The other issue to keep in mind is that when you write a CFC instance to
> the datastore, the complete object gets written, overwriting everything that
> was previously in the datastore. So if you have a CFC instance with multiple
> properties and you just want to update one property leaving the others
> unmodified, the only way to do it is via read-update-write.
>
> Vince
>
> On Fri, Nov 13, 2009 at 7:14 PM, Rainer <[email protected]> wrote:
>
>>
>> Guys,
>>
>> Maybe I can't find it in the GoogleAppEngine:Datastore documentation,
>> but I was wondering how I can update an object in the GAE datastore?
>>
>> For instance:
>>
>> I create an object from my Country component with CreateObject, give
>> all properties a value, and use 'googleKey = googleWrite(object)' to
>> store it in de datastore.
>>
>> Next request, I submit new property values + googleKey. What should I
>> do:
>>
>> 1) object = GoogleRead( googleKey), update values of object with form
>> values, and than googleWrite(object) ?
>>
>> OR
>>
>> 2) object = CreateObject().init(form), and than something like
>> googleWrite(object,"form.googleKey") ?
>>
>> In other words: must I first do a read from the datastore to update an
>> object in there? Isn't that a performance issue?
>>
>> Rainer.
>>
>>
>  --
> Open BlueDragon Public Mailing List
> http://www.openbluedragon.org/ http://twitter.com/OpenBlueDragon
> mailing list - http://groups.google.com/group/openbd?hl=en
>
> !! save a network - please trim replies before posting !!
>

-- 
Open BlueDragon Public Mailing List
 http://www.openbluedragon.org/   http://twitter.com/OpenBlueDragon
 mailing list - http://groups.google.com/group/openbd?hl=en

 !! save a network - please trim replies before posting !!

Reply via email to