Even if someone tells you they are.. Just remember that a Put that comes in a noon, and a put that comes in 500ms after noon might actually arrive at different times because a spin up instances could add 800ms (or more) to the put.
From: [email protected] [mailto:[email protected]] On Behalf Of Erick Fleming Sent: Tuesday, May 17, 2011 4:59 PM To: [email protected] Subject: Re: [google-appengine] Re: Is the order of datastore puts guaranteed? @Brandon You are correct, I really care about the order of the records when retrieving them, so I guess my question should have been "Is the result order of a query consistent with the put order". I know I can use DateTime (or Date in Java), but I always need these Entities in a specific order and was just trying to avoid using the sort. Thanks for your feedback and especially the humorous example :-) On Tue, May 17, 2011 at 6:31 PM, Brandon Wirtz <[email protected]> wrote: Order often matters. (I don't know about the context of this app) Say you are 4th Bank Of Brandon You process transactions from your customer Strom Strom has $500 in his account. Strom hits the Che Target for $450, Cylon's Coffee Shop for $6, the Hair Stylist for $50, and Google bills him for each of his for App Engine Accounts at $9 each. Because of the way the bank does caching Strom could make any purchase in a 4 hour window up to $600 ($500 plus his $100 overdraft protection) If we process the charges in the above order, 4BoB charges Strom $35 over draft on the last 5 trans actions. If we process the charges in the reverse order 4BoB only gets one over draft. Depending on the order you can have anywhere from 1 to 6 overdrafts when the daily fee assessment task runs and determines how much Strom owes. Yes if we put the time stamp in it shouldn't matter which order the items were added to the table... Which is likely the bit that Erick needed. (BTW Erick you are both Eric with a C and a K so I'd have thought you'd have gotten the redundancy I'm going to explain next... When you store data that will need to be ordered add the auto DateTime to it. Or the Time the thing took place, like my bank example someone may have made a purchase on Tuesday that doesn't show up until Thursday and you'd want both when you got the transaction and when it happened. Then sort the returned date by the DateTime, (or that other time thing we just discussed) then do whatever you were going to do with the data. Don't do this... Strom has $500 -450 = 50 Google sends 4 requests for $9 in 3 seconds 50-9 = 41 50-9=41 41-9=32 32-9=23 And you missed $9 because you processed each trans action rather than batching a lot of transactions but only using data older than a certain amount, and without flagging said data as "processed". -----Original Message----- From: [email protected] [mailto:[email protected]] On Behalf Of Strom Sent: Tuesday, May 17, 2011 3:55 PM To: Google App Engine Subject: [google-appengine] Re: Is the order of datastore puts guaranteed? First, the context needs to be a transaction, otherwise there isn't even a guarantee that all puts will happen. Even inside a transaction though, why does the order matter? I can only think of a situation where you use system generated ids, but those aren't guaranteed to be in order anyway. On May 17, 10:02 pm, Erick Fleming <[email protected]> wrote: > Within the context of an Entity group, can I guarantee that puts will > be in the order I put them? > > Thanks -- 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] <mailto:google-appengine%[email protected]> . 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 [email protected]. To unsubscribe from this group, send email to [email protected] <mailto:google-appengine%[email protected]> . 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 [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. -- 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.
