Re: When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?

2010-07-09 Thread ojak
Hi Eric,

Based on your response, one of the limiting criterion I listed above
is incorrect: PARTS may contain up to 10,000 total OPERATIONS across
all its OPERATION STREAMS?

So, does that mean that PARTS may actually contain up to 25 OPERATION
STREAMS with up to 10,000 OPERATIONS per OPERATION STREAM, for a
maximum of 25*10, = 250,000 OPERATIONS per PART?

Thanks in advance for the clarification.



On Jul 7, 11:53 am, AdWords API Advisor adwordsapiadvi...@google.com
wrote:
 Hi,

 In general you should use the following guidelines when creating your
 BulkMutateJobs:

 - 1 job per account being operated against.  Jobs can not operate
 against multiple accounts.
 - 1 operation stream for every campaign being operated against, scoped
 to that campaign ID.  If the number of operations for a campaign is
 greater than 10,000 than split it into multiple operation streams.
 - 1 part per 10,000 operations.  If you have 10,000 operations or less
 than there is no need for multiple parts.  If you have more
 operations, split the operations (and streams) into multiple parts.

 Operation streams exist to allow you to take advantage of concurrent
 processing on different campaigns, and parts exist to allow you to
 upload more than 10,000 operations into a single job.

 Best,
 - Eric Koleda, AdWords API Team

 On Jul 6, 4:32 pm, ojak ojakub...@gmail.com wrote:

  What criteria should be used when deciding how to segment
  BulkMutateJob operations across multiple JOBS, PARTS, and OPERATION
  STREAMS?

  After reading the BMJS overview (http://code.google.com/apis/adwords/
  v2009/docs/bulkjobs.html), the limits appear to behave as follows:
    * CLIENTS may contain up to 10 JOBS
    * JOBS may contain up to 100 PARTS
    * JOBS may contain up to 500,000 OPERATIONS across all of its PARTS
    * PARTS may contain up to 25 OPERATION STREAMS
    * PARTS may contain up to 10,000 total OPERATIONS across all its
  OPERATION STREAMS
    * OPERATION STREAMS may contain up to 10,000 OPERATIONS

  So, if the above limitations are correct, are there any best practices
  for when to separate OPERATIONS across JOBS, PARTS, and OPERATION
  STREAMS?  For example, you could segment a job with 500,000 operations
  in many ways, such as in the following three example:
    * EXAMPLE 1 (500,000 total OPERATIONS):
      - 1 JOB
      - 100 PARTS per JOB
      - 25 OPERATION STREAMS per PART
      - 200 OPERATIONS per OPERATION STREAM

    * EXAMPLE 2 (500,000 total OPERATIONS):
      - 1 JOB
      - 50 PARTS per JOB
      - 1 OPERATION STREAM per PART
      - 10,000 OPERATIONS per OPERATION STREAM

    * EXAMPLE 3 (500,000 total OPERATIONS):
      - 10 JOBS
      - 5 PARTS per JOB
      - 2 OPERATION STREAM per PART
      - 5,000 OPERATIONS per OPERATION STREAM

  Is there any reason why either EXAMPLE 1, EXAMPLE 2, or EXAMPLE 3
  might be more appropriate for deploying the same number of
  operations?  And again, more specifically, what criteria should be
  used when judging where to segment the operations?

  Thanks!



-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

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


Re: When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?

2010-07-09 Thread ojak
 Operation streams exist to allow you to take advantage of concurrent
 processing on different campaigns, and parts exist to allow you to
 upload more than 10,000 operations into a single job.

Does this mean that since PARTS contain OPERATION STREAMS, do PARTS
also process concurrently?

For example, if a job has 10 PARTS, do all 10 PARTS process
concurrently?  Or, do only the OPERATION STREAMS within each PART
process concurrently?


(BTW, the caps are for clarity, not yelling  thx)

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

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


Re: When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?

2010-07-09 Thread AdWords API Advisor
Hi,

The limitation you listed is correct, a part can only contain 10,000
operations.  An operation stream can only contain 10,000 operations
because that's the limit on a part.  If an operation stream has 10,000
operations in it the that part can only contain that single operation
stream.

As for concurrency, here is the documentation from the
BulkMutateJobService:

Once a job is launched in the bulk mutate workflow, the operation
streams in the job are sorted by scoping entity, which is either the
customer or the parent campaign. The operations of a single scoping
entity are always processed in their request order. Operations of
different scoping entities may be processed concurrently or in a
different order than in the request.

So concurrency is based on scoping entity only, regardless of how many
parts or operation streams there are.

Best,
- Eric

On Jul 9, 4:56 pm, ojak ojakub...@gmail.com wrote:
  Operation streams exist to allow you to take advantage of concurrent
  processing on different campaigns, and parts exist to allow you to
  upload more than 10,000 operations into a single job.

 Does this mean that since PARTS contain OPERATION STREAMS, do PARTS
 also process concurrently?

 For example, if a job has 10 PARTS, do all 10 PARTS process
 concurrently?  Or, do only the OPERATION STREAMS within each PART
 process concurrently?

 (BTW, the caps are for clarity, not yelling  thx)

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

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


When to segment BMJS operations across JOBS, PARTS, and OPERATION STREAMS?

2010-07-06 Thread ojak
What criteria should be used when deciding how to segment
BulkMutateJob operations across multiple JOBS, PARTS, and OPERATION
STREAMS?

After reading the BMJS overview (http://code.google.com/apis/adwords/
v2009/docs/bulkjobs.html), the limits appear to behave as follows:
  * CLIENTS may contain up to 10 JOBS
  * JOBS may contain up to 100 PARTS
  * JOBS may contain up to 500,000 OPERATIONS across all of its PARTS
  * PARTS may contain up to 25 OPERATION STREAMS
  * PARTS may contain up to 10,000 total OPERATIONS across all its
OPERATION STREAMS
  * OPERATION STREAMS may contain up to 10,000 OPERATIONS

So, if the above limitations are correct, are there any best practices
for when to separate OPERATIONS across JOBS, PARTS, and OPERATION
STREAMS?  For example, you could segment a job with 500,000 operations
in many ways, such as in the following three example:
  * EXAMPLE 1 (500,000 total OPERATIONS):
- 1 JOB
- 100 PARTS per JOB
- 25 OPERATION STREAMS per PART
- 200 OPERATIONS per OPERATION STREAM

  * EXAMPLE 2 (500,000 total OPERATIONS):
- 1 JOB
- 50 PARTS per JOB
- 1 OPERATION STREAM per PART
- 10,000 OPERATIONS per OPERATION STREAM

  * EXAMPLE 3 (500,000 total OPERATIONS):
- 10 JOBS
- 5 PARTS per JOB
- 2 OPERATION STREAM per PART
- 5,000 OPERATIONS per OPERATION STREAM

Is there any reason why either EXAMPLE 1, EXAMPLE 2, or EXAMPLE 3
might be more appropriate for deploying the same number of
operations?  And again, more specifically, what criteria should be
used when judging where to segment the operations?

Thanks!

-- 
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~
Also find us on our blog and discussion group:
http://adwordsapi.blogspot.com
http://groups.google.com/group/adwords-api
=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~=~

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