beam-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Eugene Kirpichov (JIRA)" <>
Subject [jira] [Commented] (BEAM-68) Support for limiting parallelism of a step
Date Thu, 09 Mar 2017 14:41:38 GMT


Eugene Kirpichov commented on BEAM-68:

I think this needs a discussion on the Beam dev@ mailing list. We should have a general approach
to annotating pipeline elements with runner-specific information. I don't think "annotate
the pipeline and let runners ignore it" is a good approach; the main reason being that this
would violate the abstraction boundary, where a pipeline is first constructed in a runner-agnostic
way (in fact while the runner is not even available), and then run. E.g. the set of all possible
runner-specific annotations is not known in advance: while "step parallelism limit" seems
relatively generic, suppose if say Apex allowed you to set an "Apex frobnication level" parameter
on a step - it would look pretty weird if the Beam pipeline API had a withApexFrobnicationLevel
method on a ParDo, and would introduce an illegal dependency from Beam to Apex.

> Support for limiting parallelism of a step
> ------------------------------------------
>                 Key: BEAM-68
>                 URL:
>             Project: Beam
>          Issue Type: New Feature
>          Components: beam-model
>            Reporter: Daniel Halperin
> Users may want to limit the parallelism of a step. Two classic uses cases are:
> - User wants to produce at most k files, so sets TextIO.Write.withNumShards(k).
> - External API only supports k QPS, so user sets a limit of k/(expected QPS/step) on
the ParDo that makes the API call.
> Unfortunately, there is no way to do this effectively within the Beam model. A GroupByKey
with exactly k keys will guarantee that only k elements are produced, but runners are free
to break fusion in ways that each element may be processed in parallel later.
> To implement this functionaltiy, I believe we need to add this support to the Beam Model.

This message was sent by Atlassian JIRA

View raw message