Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-11 Thread jincheng sun
Thank you all for your feedbacks. @Kenn, @Robert I got what you mean now. I think it's good to make window/timestamp/paneinfo values configurable while also avoid redundant encoding and decoding. Besides, I think the idea from @Luke is good, that we can replace WindowedValue with T in some cases

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-08 Thread Kenneth Knowles
On Fri, Nov 8, 2019 at 9:23 AM Luke Cwik wrote: > > > On Thu, Nov 7, 2019 at 7:36 PM Kenneth Knowles wrote: > >> >> >> On Thu, Nov 7, 2019 at 9:19 AM Luke Cwik wrote: >> >>> I did suggest one other alternative on Jincheng's PR[1] which was to >>> allow windowless values to be sent across the

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-08 Thread Luke Cwik
On Thu, Nov 7, 2019 at 7:36 PM Kenneth Knowles wrote: > > > On Thu, Nov 7, 2019 at 9:19 AM Luke Cwik wrote: > >> I did suggest one other alternative on Jincheng's PR[1] which was to >> allow windowless values to be sent across the gRPC port. The SDK would then >> be responsible for ensuring

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-07 Thread Luke Cwik
I did suggest one other alternative on Jincheng's PR[1] which was to allow windowless values to be sent across the gRPC port. The SDK would then be responsible for ensuring that the execution didn't access any properties that required knowledge of the timestamp, pane or window. This is different

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-07 Thread Robert Bradshaw
I think there is some misunderstanding about what is meant by option 2. What Kenn (I think) and I are proposing is not a WindowedValueCoder whose window/timestamp/paneinfo coders are parameterized to be constant coders, but a WindowedValueCoder whose window/timestamp/paneinfo values are specified

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-07 Thread jincheng sun
Thanks for your feedback and the valuable comments, Kenn & Robert! I think your comments are more comprehensive and enlighten me a lot. The two proposals which I mentioned above are to reuse the existing coder (FullWindowedValueCoder and ValueOnlyWindowedValueCoder). Now, with your comments, I

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-06 Thread Robert Bradshaw
Yes, the portability framework is designed to support this, and possibly even more efficient transfers of data than element-by-element as per the wire coder specified in the IO port operators. I left some comments on the doc as well, and would also prefer approach 2. On Wed, Nov 6, 2019 at 11:03

Re: [DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-06 Thread Kenneth Knowles
I think the portability framework is designed for this. The runner controls the coder on the grpc ports and the runner controls the process bundle descriptor. I commented on the doc. I think what is missing is analysis of scope of SDK harness changes and risk to model consistency Approach 2:

[DISCUSS] Avoid redundant encoding and decoding between runner and harness

2019-11-06 Thread jincheng sun
Hi all, I am trying to make some improvements of portability framework to make it usable in other projects. However, we find that the coder between runner and harness can only be FullWindowedValueCoder. This means each time when sending a WindowedValue, we have to encode/decode timestamp, windows