tvalentyn commented on a change in pull request #14390:
URL: https://github.com/apache/beam/pull/14390#discussion_r616242588



##########
File path: sdks/python/apache_beam/runners/pipeline_context.py
##########
@@ -118,13 +120,19 @@ def get_by_id(self, id):
 
   def get_by_proto(self, maybe_new_proto, label=None, deduplicate=False):
     # type: (message.Message, Optional[str], bool) -> str
+    obj = self._obj_type.from_runner_api(

Review comment:
       I wanted to reference the commmit in this PR that isolates this 
particular change. But thanks for adding the reference to the PR that seems to 
introduce the bug.
   
   I think the current approach in component id map  assumes that we maintain  
id->proto 
   and id<->obj relations. Whenever one of (obj, proto) is added to context, 
the counterpart is obtained through translation.  Then inverse proto->id 
relation is currently not maintained in a map. But it is computed via 
proto->FromRunnerAPI->obj->id lookup. I suppose we could add a map to cache 
this lookup? But I think this does not change the assumption that both obj, and 
proto are needed to add a new element to the map.
   
   




-- 
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.

For queries about this service, please contact Infrastructure at:
[email protected]


Reply via email to