> The later > solution only requires one put during any given processes lifetime so > it shouldn't be a perf problem.
It introduces a clean-up problem. I can't delete such an object until after I delete all entity groups named using said object's key. (GAE is free to reused generated keys.) I shouldn't have mentioned the overhead of puts. The real problem is cleanup and consistency, a problem that transactions are designed to solve. On Nov 24, 7:18 pm, Josh Heitzman <[EMAIL PROTECTED]> wrote: > Like Jon McAlister said either use a random number or create a new > entity when one of your modules is loaded and treat that entity's key > as the globally unique process ID (i.e. MAC address + pid). The later > solution only requires one put during any given processes lifetime so > it shouldn't be a perf problem. > > On Nov 22, 6:38 pm, Andy Freeman <[EMAIL PROTECTED]> wrote: > > > > > > Yes, I understand transactions and entity groups. Why do you need to > > > create an entity group *atomically*? > > > For the same reason that transactions are useful - incomplete groups > > are wrong (in my application) and I'd rather not deal with them. > > > > If you create a new entity, it will automatically be assigned a unique > > > key at the datastore level. What's wrong with just using that? > > > Each db.put has significant overhead. If I can generate a unique name > > without a db.put, I can reduce the number of db.puts that my > > application does by a factor of 2. > > > On Nov 22, 5:07 pm, "David Symonds" <[EMAIL PROTECTED]> wrote: > > > > On Sun, Nov 23, 2008 at 8:50 AM, Andy Freeman <[EMAIL PROTECTED]> wrote: > > > >> > Suppose that I want to atomically create an entity group with two > > > >> > nodes, one the parent of the other. > > > >> But *why* exactly do you want to do this? > > > > > Because I want "a set of one or more entities that can be manipulated > > > > in a single transaction. Entity group relationships tell App Engine to > > > > store several entities in the same part of the distributed network. A > > > > transaction sets up datastore operations for an entity group, and all > > > > of the operations are applied as a group, or not at all if the > > > > transaction fails." > > > > Yes, I understand transactions and entity groups. Why do you need to > > > create an entity group *atomically*? > > > > > The fact that GAE uses many machines and concurrently is why the full > > > > hostname, IP, or MAC address or some other machine identifier is > > > > useful in creating a unique identifier on GAE. (If my application > > > > always ran on the same machine, the process id and time would be > > > > sufficient.) > > > > If you create a new entity, it will automatically be assigned a unique > > > key at the datastore level. What's wrong with just using that? > > > > Dave.- Hide quoted text - > > - Show quoted text - --~--~---------~--~----~------------~-------~--~----~ 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 [EMAIL PROTECTED] For more options, visit this group at http://groups.google.com/group/google-appengine?hl=en -~----------~----~----~----~------~----~------~--~---