[ 
https://issues.apache.org/jira/browse/BEAM-7120?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17174735#comment-17174735
 ] 

Beam JIRA Bot commented on BEAM-7120:
-------------------------------------

This issue is P2 but has been unassigned without any comment for 60 days so it 
has been labeled "stale-P2". If this issue is still affecting you, we care! 
Please comment and remove the label. Otherwise, in 14 days the issue will be 
moved to P3.

Please see https://beam.apache.org/contribute/jira-priorities/ for a detailed 
explanation of what these priorities mean.


> Turn `WindowedValue<T>` into `T` for all the interfaces of Data Plane
> ---------------------------------------------------------------------
>
>                 Key: BEAM-7120
>                 URL: https://issues.apache.org/jira/browse/BEAM-7120
>             Project: Beam
>          Issue Type: Improvement
>          Components: runner-core, sdk-java-harness, sdk-py-harness
>            Reporter: sunjincheng
>            Priority: P2
>              Labels: stale-P2
>
> The main purpose of this JIRA is Turn `WindowedValue<T>` into `T` for all the 
> interfaces of Data Plane.
> The interface definitions for sending and receiving data in the code as 
> follows:
>  - org.apache.beam.runners.fnexecution.data.FnDataService
> {code:java}
> public interface FnDataService {
>   <T> InboundDataClient receive(LogicalEndpoint inputLocation, 
> Coder<WindowedValue<T>> coder, FnDataReceiver<WindowedValue<T>> listener);
>   <T> CloseableFnDataReceiver<WindowedValue<T>> send(
>       LogicalEndpoint outputLocation, Coder<WindowedValue<T>> coder);
> }
> {code}
>  - org.apache.beam.fn.harness.data.BeamFnDataClient
> {code:java}
> public interface BeamFnDataClient {
>   <T> InboundDataClient receive(ApiServiceDescriptor apiServiceDescriptor, 
> LogicalEndpoint inputLocation, Coder<WindowedValue<T>> coder, 
> FnDataReceiver<WindowedValue<T>> receiver);
>   <T> CloseableFnDataReceiver<WindowedValue<T>> send(BeamFnDataGrpcClient 
> Endpoints.ApiServiceDescriptor apiServiceDescriptor, LogicalEndpoint 
> outputLocation, Coder<WindowedValue<T>> coder);
> }
> {code}
> Both `Coder<WindowedValue<T>>` and `FnDataReceiver<WindowedValue<T>>` use 
> `WindowedValue` as the data structure that both sides of Runner and SDK 
> Harness know each other. Control Plane/Data Plane/State Plane/Logging is a 
> highly abstraction, such as Control Plane and Logging, these are common 
> requirements for all multi-language platforms. For example, the Flink 
> community is also discussing how to support Python UDF, as well as how to 
> deal with docker environment. how to data transfer, how to state access, how 
> to logging etc. If Beam can further abstract these service interfaces, i.e., 
> interface definitions are compatible with multiple engines, and finally 
> provided to other projects in the form of class libraries, it definitely will 
> help other platforms that want to support multiple languages. So we can 
> further abstract the interface definition of FnDataService's 
> BeamFnDataClient, take the FnDataService#receive interface as an example, and 
> turn `WindowedValue<T>` into `T` so that other platforms can be extended 
> arbitrarily, as follows:
> {code:java}
> <T> InboundDataClient receive(LogicalEndpoint inputLocation, Coder<T> coder, 
> FnDataReceiver<T>> listener);
> {code}
> For details, see the mail discussion list:
> [https://lists.apache.org/list.html?d...@beam.apache.org:lte=1M:%5BDISCUSS%5D%20Turn%20%60WindowedValue]



--
This message was sent by Atlassian Jira
(v8.3.4#803005)

Reply via email to