> 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)" <[email protected]> wrote: > On Sun, Aug 9, 2009 at 4:58 PM, Markitecht<[email protected]> 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)" <[email protected]> > > 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<[email protected]> 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 [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 -~----------~----~----~----~------~----~------~--~---
