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

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

                Author: ASF GitHub Bot
            Created on: 01/Feb/22 00:35
            Start Date: 01/Feb/22 00:35
    Worklog Time Spent: 10m 
      Work Description: lostluck commented on a change in pull request #16671:
URL: https://github.com/apache/beam/pull/16671#discussion_r796167396



##########
File path: sdks/go/pkg/beam/transforms/sql/sql.go
##########
@@ -79,6 +82,33 @@ func ExpansionAddr(addr string) Option {
        }
 }
 
+const serviceGradleTarget = 
":sdks:java:extensions:sql:expansion-service:shadowJar"
+
+// StartAutomatedExpansionService pulls a JAR from Maven containing
+// a Beam expansion service that handles the SQL transform URN,
+// creates a runner type to manage the service, starts the service,
+// and arranges the endpoint with the appropriate namespace tag.
+//
+// Returns the StopService() function for the runner (should be
+// deferred so the service is stopped before the program exits,)
+// the tagged expansion address, and an error.
+func StartAutomatedExpansionService() (func() error, string, error) {

Review comment:
       I think my question is why is this all done at the wrapper package 
level, rather than hidden away deeper? As implemented, every Jar based Xlang 
wrapper has to duplicate all this code and the code at the transform call 
itself, which is not a great experience, especially since there's nothing 
specific about it.
   
   Ideally, wrapper authors should only be writing
   
   defaultExpansion := xlangx.AutoNamespace + xlangx.Separator + <gradle target>
   
   Or similar (or a wrapper function like Require does).
   
   Then they pass that in, and the auto startup code will take care of the 
rest. Kinda like how the Python versions just take in the gradle target, and 
then the code takes care of the rest. In this case, everything should be 
happening within the scope of the auto HandlerFunc.
   
   We do not need to optimize for repeated calls to the same expansion service. 
Users with complex enough pipelines hitting the same service should likely be 
standing up their own anyway.
   
   If we don't want to use up "auto" just for jar startup we can always have 
something else to specify what kind of auto thing it's starting up: eg. 
"auto:jar:" to have it select sub name space for handling, or "autojar:" and 
just lean on the existing selector.

##########
File path: sdks/go/pkg/beam/core/runtime/xlangx/expand.go
##########
@@ -140,3 +140,45 @@ func QueryExpansionService(ctx context.Context, p 
*HandlerParams) (*jobpb.Expans
        }
        return res, nil
 }
+
+// QueryAutomatedExpansionService submits an external transform to be expanded 
by the
+// expansion service and then eagerly materializes the artifacts for staging. 
The given
+// transform should be the external transform, and the componenets are any 
additional

Review comment:
       ```suggestion
   // transform should be the external transform, and the components are any 
additional
   ```




-- 
This is an automated message from the Apache Git Service.
To respond to the message, please log on to GitHub and use the
URL above to go to the specific comment.

To unsubscribe, e-mail: github-unsubscr...@beam.apache.org

For queries about this service, please contact Infrastructure at:
us...@infra.apache.org


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

    Worklog Id:     (was: 718351)
    Time Spent: 17h 40m  (was: 17.5h)

> [Go SDK] Add automated expansion service start up feature
> ---------------------------------------------------------
>
>                 Key: BEAM-13399
>                 URL: https://issues.apache.org/jira/browse/BEAM-13399
>             Project: Beam
>          Issue Type: Improvement
>          Components: cross-language, sdk-go
>            Reporter: Jack McCluskey
>            Assignee: Jack McCluskey
>            Priority: P2
>          Time Spent: 17h 40m
>  Remaining Estimate: 0h
>
> Add Go SDK support for automated expansion service start-up if one is not 
> provided, following the example of the Python implementation.



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to