Hi Aljoscha:

Ye, I agree with you that an operator should not see output edges and 
serialisers. The call getChainIndex() is used only in 
OperatorConfig.toString(), it can be removed. However, isChainStart() and 
isChainEnd() is used in AbstractStreamOperator.setup(...).


But I think what Stephan meant is only that changing OperatorConfig to be 
serialisable. If StreamConfig is also serialisable, it need to be serialized 
into the Configuration, which is underlying before and flows across modules.


Do you agree what I understand?


Best Regards!


Xu Pingyong
  






At 2017-07-05 00:01:34, "Aljoscha Krettek" <aljos...@apache.org> wrote:
>Hi,
>
>Yes, but I think what Stephan was hinting at was to change both of them to be 
>serialisable when already working on this.
>
>I think input serialiser is fine to have in OperatorConfig, you’re right! I 
>don’t see getChainIndex() used anywhere in the code, though. And the output 
>edges and serialisers also look like they should not be visible to the 
>operator.
>
>What do you think?
>
>Best,
>Aljoscha
>
>> On 4. Jul 2017, at 17:52, xu <xupingyong...@163.com> wrote:
>> 
>> Hi Aljoscha:
>>    Thanks a lot for your advice.
>> 
>> 
>>    I think I have not need to separate steps, because what I do is only that 
>> introducing OperatorConfig and moving the fields. StreamConfig  still  relys 
>> on an underlying Configuration which flows from client to the jobmanager and 
>> then to the task.
>> 
>> 
>>    The following configs are used in an operator now:
>>    2) input serializer is used in AsyncWaitOperator.class
>>    5) chain.index is used in AbstractStreamOperator.setup(...)
>> 
>> 
>>    However, What I put in the OperatorConfig is all configs belong to the 
>> operator, contains not only the operator uses now, but also the streamTask 
>> uses to build an operator. By OperatorConfig, an operator can not see 
>> configs belong to others.
>> 
>> 
>>   Best Regards!
>>   JiPing
>

Reply via email to