Hello,

High Replication DS solves the issue of latency
between requested get/put/delete operation and its actual completion,

but it still has limitations on how many put requests
you can do per second - currently only 1 guaranteed write per second
per entity group.

(here at the bottom : 
http://code.google.com/appengine/docs/python/datastore/hr/overview.html)

any entity may be considered as single-item entity group, so this
applied to
series of puts to the same entity.

As I understand from your example, particular user are supposed to
write into the same entity instance
several times - so this may be potentially 'Contention Error'
I have encountered such situation on frequently updated entity groups

May be you may consider several shards for Email entity?
Then , you may examine update times and sum chunks in proper order
(provided you have some field mtime =
db.DateTimeProperty(auto_now=True))

Or even better - collect some intermediate results in memcache
instance
and,say, every 1 or 2 seconds do actual write into datastore?

Best regards,
Den



On Feb 25, 11:43 am, de Witte <[email protected]> wrote:
> Hello,
>
> We are developing the following datastore for a big application.
>
> One table with 10.000.000 records.
>
> The application has at any given time 40.000 active users.
> These users make frequently adjustments to these records.
> In rare cases, more than one user writes to a single record.
>
> What happens if a specific user does four requests in a row to adjust a
> single record.
>
> For example:
>
> Entity Email with property content;
>
> Request 1: get Email, add 'hello' to content, put Email.
> Request 2: get Email, add ',how' to content, put Email.
> Request 3: get Email, add ' are y' to content, put Email.
> Request 4: get Email, add ' doing' to content, put Email.
>
> How can I ensure that the content property has the value 'hello, how are y
> doing' after the fourth request?
>
> The entity group Email, has no parent.
>
> Is this scenario strongly consistent?

-- 
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.

Reply via email to