Interesting results!  I've run similar tests with writes (put and delete)
and my results indicate that in most situations, multiple async writes will
perform better than one batch sync call.  I can't think of any reason this
wouldn't be the case for reads as well.  Are your entities all in different
entity groups?

Thanks,
Max

On Fri, Dec 17, 2010 at 4:11 PM, Ikai Lan (Google)
<ikai.l+gro...@google.com<ikai.l%2bgro...@google.com>
> wrote:

> Very cool. Thanks for posting!
>
> What kind of processing are you doing after you retrieve the entities? I'm
> surprised it made a difference.
>
>
> --
> Ikai Lan
> Developer Programs Engineer, Google App Engine
> Blogger: http://googleappengine.blogspot.com
> Reddit: http://www.reddit.com/r/appengine
> Twitter: http://twitter.com/app_engine
>
>
>
> On Fri, Dec 17, 2010 at 2:48 PM, Gal Dolber <gal.dol...@gmail.com> wrote:
>
>> Even better :)
>>
>> [image: Screen shot 2010-12-17 at 7.48.44 PM.png]
>>
>>
>> On Fri, Dec 17, 2010 at 7:31 PM, Gal Dolber <gal.dol...@gmail.com> wrote:
>>
>>> Here are my results if anyone interested.
>>>
>>> The idea was splitting a batch into multiple async gets so I could start
>>> processing each results while the others were being fetched.
>>> With the batch get I need to wait until I get all the results to do the
>>> next operations.
>>>
>>> At the end (on my situation) batching won.
>>> *
>>> *
>>> *Multiple async gets*
>>> [image: MultipleAsyncs.png]
>>>
>>> *Batching*
>>>
>>> [image: Batch.png]
>>>
>>>
>>> On Thu, Dec 16, 2010 at 4:48 PM, Gal Dolber <gal.dol...@gmail.com>wrote:
>>>
>>>> Yes, I am talking about datastore api.
>>>>
>>>> I made some isolated tests and the batch always wins (no by so much).
>>>>
>>>> But in my app, when I break the batch into multiple async gets, I can
>>>> start processing each async get result (and doing another api calls)
>>>> before... and it seems to be perform better.
>>>>
>>>> I'll keep doing tests and post if find anything interesting.
>>>> Thanks!
>>>>
>>>>
>>>> On Thu, Dec 16, 2010 at 2:42 PM, Ikai Lan (Google) <
>>>> ikai.l+gro...@google.com <ikai.l%2bgro...@google.com>> wrote:
>>>>
>>>>> You're talking about the datastore API? Underneath the hood,
>>>>> synchronous gets just make asynchronous calls and block on Future.get()
>>>>> anyway. Making a single synchronous batch get would translate to a single
>>>>> asynchronous RPC with multiple keys vs. multiple asynchronous get RPCs. I
>>>>> suspect the single batch call will perform better from a CPU cost/quota
>>>>> perspective, but I'd defer to AppStats benchmarks as the authoritative
>>>>> answer.
>>>>>
>>>>> --
>>>>> Ikai Lan
>>>>> Developer Programs Engineer, Google App Engine
>>>>> Blogger: http://googleappengine.blogspot.com
>>>>> Reddit: http://www.reddit.com/r/appengine
>>>>> Twitter: http://twitter.com/app_engine
>>>>>
>>>>>
>>>>>
>>>>> On Wed, Dec 15, 2010 at 3:38 AM, Gal Dolber <gal.dol...@gmail.com>wrote:
>>>>>
>>>>>>  Should I expect the similar performance? or the batch will always be
>>>>>> better?
>>>>>>
>>>>>> --
>>>>>> You received this message because you are subscribed to the Google
>>>>>> Groups "Google App Engine for Java" group.
>>>>>> To post to this group, send email to
>>>>>> google-appengine-j...@googlegroups.com.
>>>>>> To unsubscribe from this group, send email to
>>>>>> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
>>>>>> .
>>>>>> For more options, visit this group at
>>>>>> http://groups.google.com/group/google-appengine-java?hl=en.
>>>>>>
>>>>>
>>>>>  --
>>>>> You received this message because you are subscribed to the Google
>>>>> Groups "Google App Engine for Java" group.
>>>>> To post to this group, send email to
>>>>> google-appengine-j...@googlegroups.com.
>>>>> To unsubscribe from this group, send email to
>>>>> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
>>>>> .
>>>>> For more options, visit this group at
>>>>> http://groups.google.com/group/google-appengine-java?hl=en.
>>>>>
>>>>
>>>>
>>>>
>>>> --
>>>> Guit: Elegant, beautiful, modular and *production ready* gwt
>>>> applications.
>>>>
>>>> http://code.google.com/p/guit/
>>>>
>>>>
>>>>
>>>>
>>>>
>>>
>>>
>>> --
>>> Guit: Elegant, beautiful, modular and *production ready* gwt
>>> applications.
>>>
>>> http://code.google.com/p/guit/
>>>
>>>
>>>
>>>
>>>
>>
>>
>> --
>> Guit: Elegant, beautiful, modular and *production ready* gwt applications.
>>
>> http://code.google.com/p/guit/
>>
>>
>>
>>
>>  --
>> You received this message because you are subscribed to the Google Groups
>> "Google App Engine for Java" group.
>> To post to this group, send email to
>> google-appengine-j...@googlegroups.com.
>> To unsubscribe from this group, send email to
>> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
>> .
>> For more options, visit this group at
>> http://groups.google.com/group/google-appengine-java?hl=en.
>>
>
>  --
> You received this message because you are subscribed to the Google Groups
> "Google App Engine for Java" group.
> To post to this group, send email to
> google-appengine-j...@googlegroups.com.
> To unsubscribe from this group, send email to
> google-appengine-java+unsubscr...@googlegroups.com<google-appengine-java%2bunsubscr...@googlegroups.com>
> .
> For more options, visit this group at
> http://groups.google.com/group/google-appengine-java?hl=en.
>

-- 
You received this message because you are subscribed to the Google Groups 
"Google App Engine for Java" group.
To post to this group, send email to google-appengine-j...@googlegroups.com.
To unsubscribe from this group, send email to 
google-appengine-java+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/google-appengine-java?hl=en.

Reply via email to