If you really just care about consistency, and you're actually
thinking of using external requests (which, because of propagation
delays would still not provide a very strong guarantee), why not just
bite the bullet and use a single object to synchronize transaction?
This will force you to write your code to avoid updating that object
as aggressively as possible, but if you insist on a single accurate
anything in your system, you're basically going to run into the same
set of problems.

Of course, if you just need the *user* to have a consistently ordered
transaction log, that would be one object per user, and really
shouldn't suffer all that terrible contention (unless the user is
somehow regularly generating multiple invoices per second).

On Jan 2, 1:39 pm, James Ashley <james.ash...@gmail.com> wrote:
> On Jan 1, 12:17 pm, Andy Freeman <ana...@earthlink.net> wrote:
>
> > > For a number of possible reasons (including the consistency of a
> > > running balance), an accounts engine might have a basic specification
> > > requirement that invoices are generated in sequence with ascending
> > > invoice numbers *and* ascending invoice time/date.
>
> > Except that consistency doesn't require both.  Either one is
> > sufficient and trying to have both merely puts you in the situation of
> > a person with two clocks - you don't know which one is correct.
>
> > Moreover, it's easy enough to fake an ascending time/date.  (Take the
> > max of the system time and epsilon past the most recent entry.)
>
> > If time is actually an issue, you can't use system time unless it's
> > guaranteed to be accurate, not just consistent.  For that, you're
> > probably better off consulting an accurate time source.
>
> This was pretty much exactly my thought.  Put your own central server
> on the web and use urlfetch() to get timestamp/invoice numbers.
>
> -- James
--~--~---------~--~----~------------~-------~--~----~
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