On Tue, Aug 10, 2010 at 2:24 PM, Jeff Schwartz <[email protected]>wrote:

> Your English is fine.
>
> Key ids (longs and strings) must be unique within entity groups. When your
> key has an id of type long you can either generate the value yourself or
> have the datastore autogenerate it for you depending on how you define it in
> your model or in the code that creates the entity. The docs cover this when
> discussing keys and indexes.
>
> If you are generating a key that contains an autogenerated id, type long,
> then the datastore generates the id when you put the entity.
>
> If you are creating your own ids either as a longs or strings then I
> believe there is no datastore access required to generate a key but perhaps
> someone from Google can confirm this.


I think we're misunderstanding each other, I do understand how keys work.
I'm curious about what exactly happens when I call allocateIds()... whether
allocating audo-IDs is as expensive/cheap as delete, or whether it happens
one step above Datastore (yet still way below my persistence framework
ofcourse). Another question related to that would be "What happens when I
allocate bazillion IDs and don't use them? Where and for how long are they
stored?"

What world would it be without secrets... :P

Cheers
  JZ


>
> Jeff
>
> 2010/8/10 Jaroslav Záruba <[email protected]>
>
>> Excuse my english please.
>>
>> I used delete as example because I assume it is the quickest
>> data-operation.
>>
>> Not that following would change outcome of this thread but...
>>
>> ... I wonder whether IDs are generated by the same %something% in the
>> Datastore that later writes the data.
>> Or whether it might look like this:
>> > my code
>> > > Objectify/JDO
>> ...
>> ...
>> > > > > > Datastore - ?ID generator? <- maybe this is where allocateIds()
>> gets its response from
>> > > > > > > Datastore - Writer <- CRUD go here
>>
>> I imagine there might be kind of 'memcache' above the Datastore itself...
>>
>> On Tue, Aug 10, 2010 at 1:05 PM, Jeff Schwartz 
>> <[email protected]>wrote:
>>
>>> I am not sure exactly what you mean when you say "allocation does not go
>>> the whole way to the very Datastore."  Batch puts return a list of keys
>>> associated with the items that were saved to the datastore. Deletes are
>>> quick because they are done by key and there is no serialization required
>>> because nothing is returned.
>>>
>>> Jeff
>>>
>>>
>>>
>>> 2010/8/10 Jaroslav Záruba <[email protected]>
>>>
>>>> Thanks. :)
>>>> And I assume the allocation does not go the whole way to the very
>>>> Datastore...? I.e. it is faster than let's say delete operation, isn't
>>>> it...?
>>>>
>>>> On Tue, Aug 10, 2010 at 11:54 AM, Jeff Schwartz <
>>>> [email protected]> wrote:
>>>>
>>>>> Batch puts and gets are always faster as they are done in parallel.
>>>>>
>>>>> Jeff
>>>>>
>>>>> 2010/8/9 Jaroslav Záruba <[email protected]>
>>>>>
>>>>>> Thank you, keakon!
>>>>>>
>>>>>> On Tue, Aug 10, 2010 at 4:34 AM, 风笑雪 <[email protected]> wrote:
>>>>>>
>>>>>>> As I know, pre-allocate is nothing about performance, and use single
>>>>>>> put to save entities is faster than put each of them.
>>>>>>> ----------
>>>>>>> keakon
>>>>>>>
>>>>>>>
>>>>>>>
>>>>>>> 2010/8/10 Jaroslav Záruba <[email protected]>:
>>>>>>> > Hello
>>>>>>> > Could someone tell me which approach is 'cheaper', please?
>>>>>>> > Let's have two entities...
>>>>>>> > - persistedBasket // already persisted entity, holds item IDs
>>>>>>> > - newItem // does not have ID yet
>>>>>>> > Should I put(newItem), pass its ID to persistedBasket and then
>>>>>>> > put(persistedBasket), or is it 'cheaper' to pre-allocate single ID
>>>>>>> for
>>>>>>> > newItem and then do put(persistedBasket, newItem)?
>>>>>>> > In other words, does it make sense to pre-allocate single ID to
>>>>>>> make single
>>>>>>> > put(item1, item2) instead of two consecutive put's?
>>>>>>> > Regards
>>>>>>> >   JZ
>>>>>>> >
>>>>>>> > --
>>>>>>> > 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.
>>>>>>> >
>>>>>>>
>>>>>>> --
>>>>>>> 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.
>>>>>>>
>>>>>>>
>>>>>>  --
>>>>>> 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.
>>>>>>
>>>>>
>>>>>
>>>>>
>>>>> --
>>>>> --
>>>>> Jeff
>>>>>
>>>>> --
>>>>> 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.
>>>>>
>>>>
>>>>  --
>>>> 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.
>>>>
>>>
>>>
>>>
>>> --
>>> --
>>> Jeff
>>>
>>> --
>>> 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.
>>>
>>
>>  --
>> 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.
>>
>
>
>
> --
> --
> Jeff
>
> --
> 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.
>

-- 
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