Aljoscha Krettek created BEAM-1850:
--------------------------------------

             Summary: Improve interplay between PusbackSideInputRunner and 
GroupAlsoByWindowViaWindowSetDoFn
                 Key: BEAM-1850
                 URL: https://issues.apache.org/jira/browse/BEAM-1850
             Project: Beam
          Issue Type: Improvement
          Components: runner-core, runner-flink
            Reporter: Aljoscha Krettek
            Assignee: Kenneth Knowles


This originated from a discussion on a PR: 
https://github.com/apache/beam/pull/2235

{{GroupAlsoByWindowViaWindowSetDoFn}}/{{GroupAlsoByWindowViaWindowSetNewDoFn}} 
and {{PushbackSideInputDoFnRunner}} don't work well together and we manually 
need to explode windows in 
{{FlinkStreamingTransformTranslators.ToKeyedWorkItem}} because of this:

 - {{GroupAlsoByWindowViaWindowSetDoFn}} is a {{DoFn<KeyedWorkItem<K, InputT>, 
KV<K, OutputT>>}} so you have to push in {{KeyedWorkItem}}. These themselves 
contain {{WindowedValue<InputT>}} (or timers).
 - For executing a {{DoFn}} we use a {{DoFnRunner}}. For our problem the 
interesting case is using a {{PushbackSideInputDoFnRunner}}. The interesting 
method is {{processElementInReadyWindows(WindowedValue<InputT> elem)}} where 
{{InputT}} is the input type of the {{DoFn}} which, for the windowing case, is 
{{KeyedWorkItem<K, InputT>}} (from above). The actual expanded type signature 
is thus {{processElementInReadyWindows(WindowedValue<KeyedWorkItem<K, InputT>> 
elem)}} where the keyed work items again contain {{WindowedValues}} (again, 
from above).
I think the {{PushbackSideInputDoFnRunner}} was not initially meant for 
executing {{GroupAlsoByWindowViaWindowSetDoFns}}.







--
This message was sent by Atlassian JIRA
(v6.3.15#6346)

Reply via email to