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.

Reply via email to