Hi Nick and others Thank you for your response.
More inline below ... On Thu, Sep 2, 2010 at 8:17 PM, Nick Johnson (Google) < [email protected]> wrote: > Hi Jagan, > > On Tue, Aug 31, 2010 at 9:46 AM, Jagan <[email protected]> wrote: > >> Hi Google, Nick Johnson and others >> >> Does Google recommend using UUID (UUID4 to be specific) as key names >> for entities in GAE instead of auto generated numeric ids? >> >> Does this hold good in all use cases in the universe? >> > > This depends entirely on your use-case. Unless you expect an extremely high > insertion rate of new entities (eg, >=100QPS) with no natural key name, it's > not necessary to use a UUID. UUIDs take more space than regular integer IDs. > > >> >> And is this the reason why import export of auto generates IDs are not >> yet supported in BulkUpload? Should I wait till this is supported or >> should I refactor my code to use UUID key names? >> > > It's possible to do this using the bulkloader, but requires you to override > a method to generate key names. > Were you speaking about the old bulkloader? From looking at the code at<sdk-home>\ google\appengine\tools\bulkloader.py, I think that might not work, because even if we return a Key constructed with the id, it is later doing loader.create_entity with the key name. Here is the snippet that I am relating to: Line 1260-1267: for line_number, values in rows: key = loader.generate_key(line_number, values) if isinstance(key, datastore.Key): parent = key.parent() key = key.name() else: parent = None entity = loader.create_entity(values, key_name=key, parent=parent) Anyways, I tried the following technique in the new bulkloader: - kind: XYZ connector: csv connector_options: property_map: - property: __key__ external_name: key *import_transform: transform.create_foreign_key('XYZ', True)* export_transform: transform.key_id_or_name_as_string It is working. Is this good enough? But* *I have one general doubt here. I read in one forum that, with these techniques, the *sequence number* (?) that GAE maintains for the next new generated id wont be incremented / updated, and so when our app tries to create a new entity, its auto generated id might clash. Is this true? Is there any link that describes how auto increment ids work on App Engine? > > >> >> Is there a demo page that compares between the bulk read/write >> performance between entities that have 32-bit numeric ids versus xxx- >> bit UUID key names? >> > > The performance should be roughly the same - but the space used will be > significantly larger in the case of UUIDs. > > -Nick Johnson > > >> >> Some home work that I did: >> >> >> http://groups.google.com/group/google-appengine/browse_thread/thread/bc868376ffa37619/db9bda21c95ea806?lnk=gst&q=uuid#db9bda21c95ea806 >> >> >> http://groups.google.com/group/google-appengine/browse_thread/thread/a6fcce84837c34b/d4c9d5b3c7869222?lnk=gst&q=uuid#d4c9d5b3c7869222 >> >> >> http://groups.google.com/group/google-appengine/browse_thread/thread/7dedb7d65bdf4f/37f2733fd9f572b9?lnk=gst&q=uuid#37f2733fd9f572b9 >> >> Thanks >> Jagan >> >> -- >> 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]<google-appengine%[email protected]> >> . >> For more options, visit this group at >> http://groups.google.com/group/google-appengine?hl=en. >> >> > > > -- > Nick Johnson, Developer Programs Engineer, App Engine Google Ireland Ltd. > :: Registered in Dublin, Ireland, Registration Number: 368047 > Google Ireland Ltd. :: Registered in Dublin, Ireland, Registration Number: > 368047 > Thanks Jagan -- Let the words of our mouth and the meditations of our heart Be acceptable in Thy sight here tonight! - Rivers of Babylon (album) -- 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.
