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 2018/06/04 21:26:00 UTC

[jira] [Work logged] (BEAM-4276) Implement the portable lifted Combiner transforms in Go SDK

     [ https://issues.apache.org/jira/browse/BEAM-4276?focusedWorklogId=108762&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-108762 ]

ASF GitHub Bot logged work on BEAM-4276:
----------------------------------------

                Author: ASF GitHub Bot
            Created on: 04/Jun/18 21:25
            Start Date: 04/Jun/18 21:25
    Worklog Time Spent: 10m 
      Work Description: lostluck commented on a change in pull request #5507: [BEAM-4276] Add combiner lifting support to Go SDK
URL: https://github.com/apache/beam/pull/5507#discussion_r192885506
 
 

 ##########
 File path: sdks/go/pkg/beam/core/runtime/exec/combine.go
 ##########
 @@ -42,10 +42,12 @@ type Combine struct {
 	err    errorx.GuardedError
 }
 
+// ID returns the UnitID for this node.
 
 Review comment:
   I agree it's worthwhile since everything has a UID, status and err.
   Most (if not all) have an Out and a Fn (if not a CombineFn)
   
   The alternative to the embedding would be to Interface invoke them, since there's no transparent-to-the-code inheritance of field & method overrides for embeds. (no Javastyle subclassing). I think that's still slower than the embedded approach as far as what compiles due to the interface overhead.
   
   Henning's main concern about using embedding was that it can be hard to follow the logic if the embedded class is in a different file, but it really depends on how much we're embedding. 
   We can trivially handle removing ID() & String(), along with fail(), but the real trick would be meaningfully removing the duplicated state machine code that prefixes most of the methods. I would almost suggest moving those outside of the nodes themselves, but since they're getting called in the stack, they still need to be invoked per node, in order.
   
   I vote we estimate how much code it would save, and whether that's worth it over the explicit duplication.

----------------------------------------------------------------
This is an automated message from the Apache Git Service.
To respond to the message, please log on GitHub and use the
URL above to go to the specific comment.
 
For queries about this service, please contact Infrastructure at:
users@infra.apache.org


Issue Time Tracking
-------------------

    Worklog Id:     (was: 108762)
    Time Spent: 4h 10m  (was: 4h)

> Implement the portable lifted Combiner transforms in Go SDK
> -----------------------------------------------------------
>
>                 Key: BEAM-4276
>                 URL: https://issues.apache.org/jira/browse/BEAM-4276
>             Project: Beam
>          Issue Type: Sub-task
>          Components: sdk-go
>            Reporter: Henning Rohde
>            Assignee: Robert Burke
>            Priority: Major
>          Time Spent: 4h 10m
>  Remaining Estimate: 0h
>
> Specifically add the necessary code to produce a Combine Composite with the correct URN, and permit the SDK harness to understand the lifted parts when receiving a bundle plan from the worker.
> Not expected as part of this issue is:
> Additional performance tweaks to the in memory cache (SeeĀ [BEAM-4468|https://issues.apache.org/jira/browse/BEAM-4468])



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)