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

Jark Wu commented on FLINK-11286:
---------------------------------

Hi [~tzulitai], thanks for your feedback.

I agree with you that the watermark-generating operators should support 
timeout-based automatic idleness detection (and this is what the issue need to 
do). We can continue the discussion about proposing an API in this JIRA or move 
to mailing list. 

Regarding to the "disallow mid-pipeline arbitrary watermark assigners". 
I don't feel strongly about it, but I'm okay with this. We also only allow 
watermark assigner from source in Flink SQL / Table API, and this simplifies 
much things.
I want to re-elaborate what I mean about decoupling source logic and watermark 
logic. IMO, it should be better NOT combining event-time assigner and watermark 
assigner into every specific source implementation. We can limit watermark 
assigner to be only followed after source, by moving the 
{{assignTimestampsAndWatermarks}} to {{DataStreamSource}}. But in physical, 
they can be two operators but chained together.

However, on the other hand, [~yanghua] raised a good problem which is what we 
are also facing. 
For example, the parser/extraction may be heavy (e.g. using regex to extract 
event-time). But if we enforce the limitation, the parser is in the source or 
the parallelism of the parser is enforced to be the same with the source (say 
only 4 partitions). As a result, the parser become the bottleneck of the job, 
and we can't scale out the job. But without the limitation, we can increase the 
parallelism of the parser (say 128 tasks) to get a better throughput.




> Support to send StreamStatus.IDLE for non-source operators 
> -----------------------------------------------------------
>
>                 Key: FLINK-11286
>                 URL: https://issues.apache.org/jira/browse/FLINK-11286
>             Project: Flink
>          Issue Type: Improvement
>          Components: DataStream API
>            Reporter: vinoyang
>            Assignee: vinoyang
>            Priority: Major
>
> Currently, only stream source tasks can be marked as temporary idle. But many 
> times, this approach has limitations.
> Considering such a scenario, there is a DAG as follows: 
> {{source->map->filter->flatmap->keyBy->window}}, with a degree of parallelism 
> of 10. Among them, the watermark is not sent by the source operator, but is 
> downstream, such as flatmap. Every source subtask will not be idle. However, 
> after the filter, some pipelines generate "idle". For example, there are 3 
> pipelines that will no longer have data sent downstream. At this time, we 
> can't call the {{markAsTemporarilyIdle}} method to mark the current pipeline 
> in the idle state. This will affect the downstream window.



--
This message was sent by Atlassian JIRA
(v7.6.3#76005)

Reply via email to