Google Groups Home
Help | Sign in
Message from discussion creating unique numeric IDs in datastore (sample code)
The group you are posting to is a Usenet group. Messages posted to this group will make your email address visible to anyone on the Internet.
Your reply message has not been sent.
Your post was successful
Ben the Indefatigable  
View profile
 More options Apr 28, 8:43 am
From: Ben the Indefatigable <bcbry...@gmail.com>
Date: Mon, 28 Apr 2008 05:43:17 -0700 (PDT)
Local: Mon, Apr 28 2008 8:43 am
Subject: Re: creating unique numeric IDs in datastore (sample code)
On Apr 27, 11:28 am, dundeemt <dunde...@gmail.com> wrote:

> I don't think that an auto-increment field is the way to go.  It is
> viable when you only have 1 database but I don't think that is how GAE
> operates.  Someone step in and correct me if I'm wrong.  The datastore
> for your app is going to/can be replicated out to other machines based
> on geographic usage.  This would mean that their exists times, when
> datastore' != datastore'' -- over time datastore' would be sync'd with
> datastore'' so that datastore' == datastore''   -- this would lead one
> to believe that there will be times when the idea of an auto-increment
> field will not be synchronizable or that the result of the
> synchronization would be less than satisfactory.  My belief that auto-
> increment fields are the wrong idea in this environment is
> strengthened by the fact that they are not offered as an intrinsic
> data type in the Model or Expando classes.

On Apr 27, 8:15 pm, vrypan <vry...@gmail.com> wrote:

> Jeff, I don't think your synchronization concerns are valid in this
> case. It looks like the implementation I suggested is consistent (the
> counter increments take place in a transaction) and the actual piece
> of information that needs to be replicated between servers is a
> relatively small object. That said, I have no insight on how google
> infrastructure works, so I may be totally wrong. :-)

Jeff, synchronization is not a concern. The datastore hides the issue
of multiple machines. Even when you don't have much data it is likely
that the master copies of different entities of your data reside on
different machines because it is never assigned or bound to one
machine; the BigTable infrastructure is shared by many applications
from the beginning. Rest assured that "datastore == datastore" as you
put it. The whole point of a transaction on an entity is that you can
rely on the integrity of that entity regardless of datastore's
underlying implementation.

    Reply to author    Forward  
You must Sign in before you can post messages.
To post a message you must first join this group.
Please update your nickname on the subscription settings page before posting.
You do not have the permission required to post.

Create a group - Google Groups - Google Home - Terms of Service - Privacy Policy
©2008 Google