[
https://issues.apache.org/jira/browse/BEAM-4852?focusedWorklogId=128772&page=com.atlassian.jira.plugin.system.issuetabpanels:worklog-tabpanel#worklog-128772
]
ASF GitHub Bot logged work on BEAM-4852:
----------------------------------------
Author: ASF GitHub Bot
Created on: 30/Jul/18 16:11
Start Date: 30/Jul/18 16:11
Worklog Time Spent: 10m
Work Description: herohde commented on a change in pull request #6052:
[BEAM-4852] Only read symbol table when required.
URL: https://github.com/apache/beam/pull/6052#discussion_r206231621
##########
File path: sdks/go/pkg/beam/core/runtime/symbols.go
##########
@@ -26,12 +26,14 @@ import (
)
var (
- Resolver SymbolResolver
- cache = make(map[string]interface{})
- mu sync.Mutex
+ // Resolver is the accessible symbol resolver the runtime uses to find
functions.
+ Resolver SymbolResolver
Review comment:
IIRC this is public to allow it to be overwritten. If we we do lazy init,
then we would break such attempts. It might be better to add a SymbolResolver
that lazily calls symtab.New. Then it works no matter how it is used.
----------------------------------------------------------------
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:
[email protected]
Issue Time Tracking
-------------------
Worklog Id: (was: 128772)
Time Spent: 40m (was: 0.5h)
> [Go SDK] Beam should not retain the symbol table after function resolution
> --------------------------------------------------------------------------
>
> Key: BEAM-4852
> URL: https://issues.apache.org/jira/browse/BEAM-4852
> Project: Beam
> Issue Type: Improvement
> Components: sdk-go
> Reporter: Robert Burke
> Assignee: Robert Burke
> Priority: Major
> Time Spent: 40m
> Remaining Estimate: 0h
>
> In some instances, Beam Go requires introspecting the symbol table for the
> binary to resolve functions. However it may be possible to cache these
> results for all applicable functions, and then allow the table to be garbage
> collected.
> The table represents a large heap cost that is retained for the lifetime of a
> job.
> A secondary goal would be to avoid incurring the cost entirely when there's
> nothing to look up for a job. Eg for unit tests, or ancillary uses of the
> beam SDK (eg. migrating from some other system to beam shouldn't incur the
> cost when the old system is being used, just because beam is linked in and
> triggered by a runtime switch).
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)