Yes I realize that there's not much WE can do to resolve this. But will 
this be fixed on your side in the next version? Such slow processing kinda 
defeats the whole idea of quickly submitting bulk jobs...

Thank you.

On Friday, May 8, 2015 at 5:15:53 PM UTC-4, Josh Radcliff (AdWords API 
Team) wrote:
>
> Hi,
>
> I spoke with our Python library guru, and he informed me that this is a 
> known performance issue with the library. Specifically, suds 
> <https://pypi.python.org/pypi/suds-jurko/> (the SOAP library used by our 
> Python client library) can take a significant amount of time to prepare 
> large requests and parse large responses. This is consistent with the 
> timing you sent over, as it shows that the actual processing time (once the 
> request is prepared) is just a small fraction of the overall time elapsed.
>
> Unfortunately, there's not much you can do to resolve this. From tests on 
> our side, if you have a large # of operations to send, you'll see slightly 
> better performance if you send *fewer* larger requests (more operations 
> per request) than if you send a large number of small requests (fewer 
> operations per request).
>
> Thanks,
> Josh, AdWords API Team
>
> On Friday, May 8, 2015 at 3:41:56 PM UTC-4, GDZ wrote:
>>
>> Hope not a double post:  another message I found in the log:  
>> *DEBUG:suds.metrics:message 
>> for 'mutate' created: 30.551 (seconds)*
>>
>> Emailed you full log also.
>>
>> Thank you!
>>
>>
>> On Thursday, May 7, 2015 at 10:32:29 AM UTC-4, Josh Radcliff (AdWords API 
>> Team) wrote:
>>>
>>> Hi,
>>>
>>> Thanks for getting the log message. That clearly shows that out of the 
>>> 20 seconds it took to:
>>>
>>>    1. Prepare the request (including converting it to SOAP XML)
>>>    2. Send the request
>>>    3. Process the response
>>>
>>> only 1.167 seconds was actually spent on step 2. This means that 
>>> something else besides the sending of the request is the bottleneck. I 
>>> highly doubt that step 3 is an issue because the response is rather small, 
>>> so that points to step 1 as the culprit.
>>>
>>> Do the logs give any more insights as to which portion of step 1 is 
>>> taking the remaining 18.833 seconds?
>>>
>>> Thanks,
>>> Josh, AdWords API Team
>>>
>>> On Wednesday, May 6, 2015 at 11:59:27 AM UTC-4, GDZ wrote:
>>>>
>>>> Submitting job of 237 keywords, took around 20 sec.
>>>>
>>>> Output:  *DEBUG:suds.metrics:method 'mutate' invoked: 1.167 (seconds)*
>>>>
>>>> On Wednesday, May 6, 2015 at 11:34:50 AM UTC-4, Josh Radcliff (AdWords 
>>>> API Team) wrote:
>>>>>
>>>>> Hi,
>>>>>
>>>>> I retrieved the XML response for your request, and that also claims 
>>>>> that the request only took 844 milliseconds, so I suspect the delay is in 
>>>>> the preparation of the request, most likely within the client library 
>>>>> itself or (less likely) in your code that constructs the objects.
>>>>>
>>>>> Could you enable debug logging when submitting one of your large 
>>>>> requests by adding the following to your code?
>>>>>
>>>>> import logging
>>>>>
>>>>> logging.basicConfig(level=logging.DEBUG)
>>>>> logging.getLogger('suds.transport').setLevel(logging.DEBUG)
>>>>>
>>>>> In the output generated, you should see something like this:
>>>>>
>>>>> DEBUG:suds.metrics:method 'mutate' invoked: 183 (ms)
>>>>>
>>>>> I'd like to know what that shows in terms of milliseconds, as that 
>>>>> reflects the actual request/response time over the wire.
>>>>>
>>>>> Thanks,
>>>>> Josh, AdWords API Team
>>>>>
>>>>> On Tuesday, May 5, 2015 at 4:53:26 PM UTC-4, GDZ wrote:
>>>>>>
>>>>>> Using this example here:
>>>>>>
>>>>>>
>>>>>> https://github.com/googleads/googleads-python-lib/blob/master/examples/adwords/v201502/campaign_management/add_keywords_in_bulk.py
>>>>>>
>>>>>> And yes, I measure time before and after "response = 
>>>>>> mutate_job_service.mutate(operations, policy)" 
>>>>>>
>>>>>>
>>>>>> On Tuesday, May 5, 2015 at 4:22:31 PM UTC-4, Josh Radcliff (AdWords 
>>>>>> API Team) wrote:
>>>>>>>
>>>>>>> Hi GDZ,
>>>>>>>
>>>>>>> Thanks for sending over the request ID. According to our records, 
>>>>>>> the response was returned in 844 *milli*seconds. I'm wondering if 
>>>>>>> there's either a bottleneck in the library you're using or your code 
>>>>>>> that's 
>>>>>>> actually causing the delay.
>>>>>>>
>>>>>>> Could you let me know which client library you're using to send your 
>>>>>>> requests? Also, have you confirmed that the 50 second delay is actually 
>>>>>>> from the time the request is sent to the time the response is received?
>>>>>>>
>>>>>>> Thanks,
>>>>>>> Josh, AdWords API Team
>>>>>>>
>>>>>>> On Tuesday, May 5, 2015 at 11:59:47 AM UTC-4, GDZ wrote:
>>>>>>>>
>>>>>>>> Here's the requestId: 00051557bc394c380aecb348e200683b
>>>>>>>>
>>>>>>>>
>>>>>>>> Thank you.
>>>>>>>>
>>>>>>>> On Monday, May 4, 2015 at 4:07:47 PM UTC-4, Josh Radcliff (AdWords 
>>>>>>>> API Team) wrote:
>>>>>>>>>
>>>>>>>>> Hi GDZ,
>>>>>>>>>
>>>>>>>>> Do you have the *requestId* from the response of one of your 
>>>>>>>>> *MutateJobService* requests that took 50 seconds? I'd like to 
>>>>>>>>> take a look at it from our side.
>>>>>>>>>
>>>>>>>>> One thing to keep in mind is that the benefits of 
>>>>>>>>> *MutateJobService* go beyond just quickly submitting large 
>>>>>>>>> requests. Although it does allow you to "fire and forget" large 
>>>>>>>>> changes, it 
>>>>>>>>> also attempts to handle transient errors such as concurrent 
>>>>>>>>> modification 
>>>>>>>>> errors and rate limit errors.
>>>>>>>>>
>>>>>>>>> Thanks,
>>>>>>>>> Josh, AdWords API Team
>>>>>>>>>
>>>>>>>>> On Sunday, May 3, 2015 at 3:18:39 PM UTC-4, GDZ wrote:
>>>>>>>>>>
>>>>>>>>>> When creating a mutate call submitting ~1000 keywords via 
>>>>>>>>>> MutateJobService, response time is always around 50 sec.
>>>>>>>>>> Wasn't the idea of this service to just submit operations in bulk 
>>>>>>>>>> quickly, and only after that periodically check for job status and 
>>>>>>>>>> result?
>>>>>>>>>>
>>>>>>>>>> 50 sec for just submitting (not actual processing) of 1000 
>>>>>>>>>> operations seems kinda too much. And yes I know that we can do that 
>>>>>>>>>> concurrently but still...
>>>>>>>>>>
>>>>>>>>>> Thank you,
>>>>>>>>>> GDZ 
>>>>>>>>>>
>>>>>>>>>>

-- 
-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and Google+:
https://googleadsdeveloper.blogspot.com/
https://plus.google.com/+GoogleAdsDevelopers/posts
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

You received this message because you are subscribed to the Google
Groups "AdWords API Forum" group.
To post to this group, send email to adwords-api@googlegroups.com
To unsubscribe from this group, send email to
adwords-api+unsubscr...@googlegroups.com
For more options, visit this group at
http://groups.google.com/group/adwords-api?hl=en
--- 
You received this message because you are subscribed to the Google Groups 
"AdWords API Forum" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to adwords-api+unsubscr...@googlegroups.com.
Visit this group at http://groups.google.com/group/adwords-api.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/adwords-api/1798696b-9947-4f24-9489-c184ba0c74d5%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to