Details
-
Improvement
-
Status: Resolved
-
P2
-
Resolution: Fixed
-
None
Description
To make the portability effort tractable, we should implement a Universal Local Runner (ULR) in Java that runs in a single server process plus docker containers for the SDK harness containers. It would serve multiple purposes:
(1) A reference implementation for other runners. Ideally, any new feature should be implemented in the ULR first.
(2) A fully-featured test runner for SDKs who participate in the portability framework. It thus complements the direct runners.
(3) A test runner for user code that depends on or customizes the runtime environment. For example, a DoFn that shells out has a dependency that may be satisfied on the user's desktop (and thus works fine on the direct runner), but perhaps not by the container harness image. The ULR allows for an easy way to find out.
The Java direct runner presumably has lots of pieces that can be reused.
Attachments
Issue Links
- is blocked by
-
BEAM-4073 The DirectRunner should interact with a Pipeline via an abstraction of the Graph rather than SDK types
- Resolved
-
BEAM-3326 Execute a Stage via the portability framework in the ReferenceRunner
- Resolved
-
BEAM-4240 Implement the limited set of portable primitives in the Java DirectRunner
- Resolved
-
BEAM-4259 Instantiate a Pipeline (EvaluationContext, Executor, etc) via Proto format (only) in the DirectRunner
- Resolved
-
BEAM-2885 Local Dataflow proxy for portable job submission
- Resolved
- is depended upon by
-
BEAM-2896 Portability milestone: wordcount runs everywhere
- Triage Needed
- links to