You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@beam.apache.org by "ASF GitHub Bot (JIRA)" <ji...@apache.org> on 2017/08/23 14:58:00 UTC

[jira] [Commented] (BEAM-2430) Java FnApiDoFnRunner to share across runners

    [ https://issues.apache.org/jira/browse/BEAM-2430?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=16138449#comment-16138449 ] 

ASF GitHub Bot commented on BEAM-2430:
--------------------------------------

GitHub user kennknowles opened a pull request:

    https://github.com/apache/beam/pull/3750

    [BEAM-2430] DoFnRunner for processing a bundle over the Fn API

    Follow this checklist to help us incorporate your contribution quickly and easily:
    
     - [ ] Make sure there is a [JIRA issue](https://issues.apache.org/jira/projects/BEAM/issues/) filed for the change (usually before you start working on it).  Trivial changes like typos do not require a JIRA issue.  Your pull request should address just this issue, without pulling in other changes.
     - [ ] Each commit in the pull request should have a meaningful subject line and body.
     - [ ] Format the pull request title like `[BEAM-XXX] Fixes bug in ApproximateQuantiles`, where you replace `BEAM-XXX` with the appropriate JIRA issue.
     - [ ] Write a pull request description that is detailed enough to understand what the pull request does, how, and why.
     - [ ] Run `mvn clean verify` to make sure basic checks pass. A more thorough check will be performed on your pull request automatically.
     - [ ] If this contribution is large, please file an Apache [Individual Contributor License Agreement](https://www.apache.org/licenses/icla.pdf).
    
    ---
    
    R: @aljoscha this is not super polished, and much of the complexity I thought I would encapsulate really fits better outside the DoFnRunner. But I thought reviewing this and getting it in might be a good way to proceed and share understanding of the Fn API.

You can merge this pull request into a Git repository by running:

    $ git pull https://github.com/kennknowles/beam FnApiDoFnRunner

Alternatively you can review and apply these changes as the patch at:

    https://github.com/apache/beam/pull/3750.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

    This closes #3750
    
----
commit eb18585969f67089de62b20dc5c3b2722d7e566a
Author: Kenneth Knowles <kl...@google.com>
Date:   2017-08-23T13:20:33Z

    Basic Java wrapper for Fn API data plane

commit f71101685265c53ecee36d3aadec037cc792f0b4
Author: Kenneth Knowles <kl...@google.com>
Date:   2017-07-26T14:42:03Z

    FnApiControlClient, de-inverts Fn API control plane
    
    The Fn API control plane has an inverted client/server relationship in
    order to support firewall rules where the runner is forbidden from
    connecting out to the SDK harness. This Java helper provides an API with
    the more conventional polarity. It also associates streamed gRPC
    requests with responses to support simple future-based programming.

commit 858f219ce3a6df64b8344472022e01141ecf130b
Author: Kenneth Knowles <kl...@google.com>
Date:   2017-07-26T14:44:41Z

    Service for pooling incoming Fn API control plane connections

commit c3c882df800926b46c07bdeb867b5639bcde00f1
Author: Kenneth Knowles <kl...@google.com>
Date:   2017-07-26T14:45:37Z

    Higher-level SdkHarnessClient
    
    This adds a fairly thin wrapper on FnApiSdkHarnessClient, encapsulating
    the fact that all request and response types are injected into a
    disjoint union and sent over the same low-level RPC.

commit a947ccb752f4200cbc8a98f85129115e45577973
Author: Kenneth Knowles <kl...@google.com>
Date:   2017-07-26T14:48:48Z

    Add SdkHarnessDoFnRunner
    
    This encapsulates processing a bundle over the Fn API.
    
    A Beam runner is responsible for:
    
     - Setting up a FnApiControlClientPoolService to listen for incoming
       FnApiSdkHarnessClient connections
     - Wrapping those connections in the higher-level SdkHarnessClient
     - Building the ProcessBundleDescriptor (instruction graph) to be executed
     - Establishing data plane endpoints referenced by the ProcessBundleDescriptor
     - Registering the data plane endpoints and ProcessBundleDescriptor with the
       SdkHarnessClient
    
    This class is responsible for:
    
     - Registering each bundle with the SDK harness
     - Streaming the elements of each bundle to the SDK harness
       over the data plane

----


> Java FnApiDoFnRunner to share across runners
> --------------------------------------------
>
>                 Key: BEAM-2430
>                 URL: https://issues.apache.org/jira/browse/BEAM-2430
>             Project: Beam
>          Issue Type: New Feature
>          Components: runner-core
>            Reporter: Kenneth Knowles
>            Assignee: Kenneth Knowles
>              Labels: beam-python-everywhere
>
> As the portability framework comes into focus, let's fill out the support code for making it easy to onboard a new runner.
> There is some amount of using the Fn API that has to do only with the fact that a runner is implemented in Java, and is not specific to that runner. This should be part of the runners-core library, and designed so that a runner can set it up however it likes, and just pass elements without having to explicitly manage things like requests, responses, protos, and coders.



--
This message was sent by Atlassian JIRA
(v6.4.14#64029)