> Finally, do look at the info on sharded counters if you expect
> individual counters to be updated more than about once a second.

That is fairly disturbing advice as it seems to suggest that updating
a simple entity more than once a second is problematic.

I would have thought that it would be safe to update a given entity
10-15 times/second and maybe even 20x/second. (10x/second is 100ms per
update, 15 is over 65ms per update, 20 is 50ms per update.)  Frankly,
I'm surprised that 5 times/second is too fast. (5x/second is 200ms per
update.)

On Aug 10, 5:24 am, "Nick Johnson (Google)" <nick.john...@google.com>
wrote:
> On Sun, Aug 9, 2009 at 4:58 PM, Markitecht<markite...@gmail.com> wrote:
>
> > Thanks Nick, makes complete sense.
>
> > I'll write it so that for each Interaction, it finds the appropriate
> > entity, increments the counter and stores it; if looking for the
> > entity turns nothing up, i make a new one with a counter set to 1.
>
> > right?
>
> Right. Just make sure to do it inside a transaction if you need exact
> counts. And use key naming to avoid the need to do queries.
>
> Finally, do look at the info on sharded counters if you expect
> individual counters to be updated more than about once a second.
>
> -Nick Johnson
>
>
>
>
>
>
>
> > thanks again for the quick and kind attention.
>
> > best,
> > Christopher
>
> > On Aug 7, 6:02 am, "Nick Johnson (Google)" <nick.john...@google.com>
> > wrote:
> >> Hi Markitecht,
>
> >> It sounds like your best option is to have a single Interaction entity
> >> for each unique string. You can use the key name to ensure uniqueness.
> >> Then, to record a new interaction, in a transaction fetch the existing
> >> one (if any), increment the count, and store it.
>
> >> If you expect some interactions to be very popular (more than a few
> >> updates a second), you should probably look into sharded counters.
>
> >> -Nick Johnson
>
> >> On Wed, Aug 5, 2009 at 7:15 PM, Markitecht<markite...@gmail.com> wrote:
>
> >> > I am writing a dirt-simple tracking API.
>
> >> > For the sake of explanation, i will over-simplify my question even
> >> > further.
>
> >> > I have an endpoint that accepts one item of string metadata, and saves
> >> > a new instance of an Interaction object.
>
> >> > (the interaction object also saves the user and the date created)
>
> >> > How do i query Interaction to return the most popular
> >> > 'interactions' (using those string metadata values), with a count for
> >> > each?
>
> >> > This seems *so* simple, but i just can't figure out how to do it on
> >> > AE.
>
> >> > Thanks,
> >> > Christopher
>
> >> --
> >> Nick Johnson, Developer Programs Engineer, App Engine
>
> --
> Nick Johnson, Developer Programs Engineer, App Engine- Hide quoted text -
>
> - Show quoted text -
--~--~---------~--~----~------------~-------~--~----~
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
-~----------~----~----~----~------~----~------~--~---

Reply via email to